我是單元測試新手。我不知道是否值得對以下代碼進行單元測試。這裏是用德爾福編寫的示例方法:下面的代碼是否值得單元測試?
function TCoreAudio.CreateAudioClient: IAudioClient;
var
MMDeviceEnumerator: IMMDeviceEnumerator;
MMDevice: IMMDevice;
MixFormat: PWaveFormatEx;
AudioClient: IAudioClient;
HR: HResult;
begin
Result := nil;
if CheckWin32Version(6, 0) then // The Core Audio APIs were introduced in Windows Vista.
begin
HR := GetInstance().CoCreateInstance(CLSID_MMDeviceEnumerator, nil, CLSCTX_ALL,
IMMDeviceEnumerator, MMDeviceEnumerator);
if Failed(HR) then
Exit;
HR := MMDeviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, MMDevice);
if Failed(HR) then
Exit;
HR := MMDevice.Activate(IAudioClient, CLSCTX_ALL, nil, AudioClient);
if Failed(HR) then
Exit;
HR := AudioClient.GetMixFormat(MixFormat);
if Failed(HR) then
Exit;
HR := AudioClient.Initialize(AUDCLNT_SHAREMODE_SHARED, 0, 0, 0, MixFormat, nil);
CoTaskMemFree(MixFormat);
if Failed(HR) then
Exit;
Result := AudioClient;
end;
end;
該方法是否值得單元測試?如果是,需要測試哪些部分?
謝謝。
但是您提出的示例單元測試(AudioClient:= CreateAudioClient; CheckNotNil(AudioClient);)將在運行Windows XP計算機時失敗,並且如果您在Windows Vista及更高版本上運行則會失敗。 – CodeSnake 2011-01-20 14:32:20
@CodeSnake這是你需要寫入測試的東西。 – 2011-01-20 15:51:30