The Bitman
The Bitman

Reputation: 1329

How to verify multiple mock expectations with Delphi Mocks?

What is the difference between mock.verify and mock.verifyAll in Delphi Mocks? Does it verify expectations of other mocks as well? I want to verify all expectations of all my mocks created for the current unit test.

Upvotes: 2

Views: 209

Answers (1)

Stefan Glienke
Stefan Glienke

Reputation: 21713

You can tell a mock of an interface that it also can mock other interfaces. This is useful if the interface you mock is asked via Supports for another interface.

Verify checks if the expectations of the directly mocked type while VerifyAll also checks the expectations of the other interfaces.

Example

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;

Upvotes: 3

Related Questions