如何正确测试Spring4D 1.2.2中模拟方法的调用号?
How to test the right way the call number of a mocked method in Spring4D 1.2.2?
我的测试只需要检查给定模拟方法的调用号,没有别的。
已测试class及内嵌接口:
type
IMyInterface = interface ( IInvokable )
['{815BD1B0-77CB-435F-B4F3-9936001BA166}']
procedure bar;
end;
TMyClass = class
private
fMyInterface : IMyInterface;
public
procedure foo;
end;
procedure TMyClass.foo;
begin
if ( someCondition ) then
fMyInterface.bar;
end;
测试用例:
procedure TMyClassUnitTest.foo_bar_NotCalled;
begin
fMyTestedObject.foo;
fMyInterfaceMock.Received( 0 ).bar;
end;
跑步者说foo_bar_NotCalled
:
No assertions were made during the test!
我还应该做什么?我应该调用 Assert 的哪个方法?
DUnitX 跟踪是否调用了 Assert。
在某些情况下,您只想检查代码是否 运行 正确而不进行一些显式检查。
在这些情况下你需要调用Assert.Pass();
来满足框架。
我的测试只需要检查给定模拟方法的调用号,没有别的。
已测试class及内嵌接口:
type
IMyInterface = interface ( IInvokable )
['{815BD1B0-77CB-435F-B4F3-9936001BA166}']
procedure bar;
end;
TMyClass = class
private
fMyInterface : IMyInterface;
public
procedure foo;
end;
procedure TMyClass.foo;
begin
if ( someCondition ) then
fMyInterface.bar;
end;
测试用例:
procedure TMyClassUnitTest.foo_bar_NotCalled;
begin
fMyTestedObject.foo;
fMyInterfaceMock.Received( 0 ).bar;
end;
跑步者说foo_bar_NotCalled
:
No assertions were made during the test!
我还应该做什么?我应该调用 Assert 的哪个方法?
DUnitX 跟踪是否调用了 Assert。 在某些情况下,您只想检查代码是否 运行 正确而不进行一些显式检查。
在这些情况下你需要调用Assert.Pass();
来满足框架。