delphi - 如何使用 Delphi Mocks 验证多个模拟期望?

标签 delphi verify delphi-mocks

Delphi Mocks 中的mock.verify 和mock.verifyAll 有什么区别?它是否也验证了其他模拟的期望? 我想验证为当前单元测试创​​建的所有模拟的所有期望。

最佳答案

您可以告诉接口(interface)的模拟它也可以模拟其他接口(interface)。如果通过支持向您模拟的接口(interface)询问另一个接口(interface),这非常有用。

Verify 检查直接模拟类型的期望,而 VerifyAll 还检查​​其他接口(interface)的期望。

示例

var
  foo: TMock<IFoo>;
begin
  foo := TMock<IFoo>.Create;
  foo.Implements<IBar>;
  foo.Setup.Expect.Once.When.DoThis;
  foo.Setup<IBar>.Expect.Once.When.DoThat;

  // pass mock to tested component which 
  // calls DoThis and Supports(IBar) and calls DoThat

  foo.Verify; // checks if DoThis was called once
  foo.VerifyAll; // also checks if DoThat on the mock as IBar was called.
end;

关于delphi - 如何使用 Delphi Mocks 验证多个模拟期望?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42833951/

相关文章:

delphi - 在 Delphi XE3 中,如何使用 TypeInfo 或 RTTI 将 TVirtualInterface 对象强制转换为其接口(interface)?

java - 如何抑制和验证私有(private)静态方法调用?

delphi - Spring4D是否有WillReturnDefault对应的函数

delphi - 使用Delphi Mock框架并造成副作用

sql - Delphi中不同区域设置不同格式的Float

delphi - 如何找到 TScrollBox 的实际大小 ("logical area")

azure - 无法验证 Azure 网站的自定义 .ninja 域

php - 是否有 PHP 版本的 zxcvbn.js 或者我可以在服务器端使用它来强制执行密码规则的方法?

Delphi DSharp Mock 抛出意外调用错误 - 为什么?

delphi - 在 TTabSheet 的选项卡上显示事件的简单方法