我是单元测试新手。我不知道是否值得对以下代码进行单元测试。这里是用德尔福编写的示例方法:下面的代码是否值得单元测试?
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