1
Delphi Mocks中mock.verify和mock.verifyAll有什麼區別?它是否驗證其他模擬的期望? 我想驗證爲當前單元測試創建的所有模擬的所有期望。如何使用Delphi Mocks驗證多個模擬期望?
Delphi Mocks中mock.verify和mock.verifyAll有什麼區別?它是否驗證其他模擬的期望? 我想驗證爲當前單元測試創建的所有模擬的所有期望。如何使用Delphi Mocks驗證多個模擬期望?
你可以告訴模擬一個接口,它也可以模擬其他接口。如果您通過支持另一個界面來詢問您的模擬界面,這很有用。
Verify
檢查直接模擬類型的期望值,而VerifyAll
也檢查其他接口的期望值。
例
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;
所以,如果我有很多嘲笑我必須驗證他們一個接一個?沒有辦法做到這一點一槍? –
我個人認爲Verify/VerifyAll是一種反模式,其他人也這麼做 - http://russellallen.info/post/2011/04/15/Moq-asserts-Verify()-vs-VerifyAll().aspx我也認爲Moq作者(Delphi Mocks的靈感來源)將其改爲使用動態模擬,然後在指定預期的調用之後進行驗證(請參閱https://github.com/moq/moq4/wiki/)。快速啓動#驗證) - 不確定Delphi Mocks是否可以做類似的事情。 –