如何正确测试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();来满足框架。