2017-03-16 3 views

답변

2

다른 인터페이스를 모의 할 수있는 인터페이스 모의을 말할 수 있습니다. 이것은 모의 인터페이스가 다른 인터페이스에 대한 지원을 통해 요청되는 경우에 유용합니다.

VerifyVerifyAll도 직접 다른 유형의 인터페이스를 확인하는 동안 직접 조롱 된 유형의 기대치를 확인합니다.

예 내가 그들에게 하나 하나 확인해야 많은 모의 객체가 그렇다면

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; 
+0

? 한 번에 그렇게 할 방법이 없습니다. –

+0

개인적으로 나는 Verify/VerifyAll이 안티 패턴이고 다른 것들도 그렇게 생각한다. - http://russellallen.info/post/2011/04/15/Moq-asserts-Verify()-vs-VerifyAll().aspx 나는 또한 Moq 저자 (Delphi Mocks에서 영감을 얻은)가 이것을 동적 Mock을 사용하여 변경 한 다음 어떤 호출이 예상되는지 지정하여 검증을 수행했다고 생각합니다 (https://github.com/moq/moq4/wiki/ 참조). 빠른 시작 # 검증) - Delphi Mock이 비슷한 기능을 수행 할 수 있는지 확실하지 않습니다. –