2016-06-30 6 views
1

여러 번 호출 할 때 결과가 달라 지도록 메소드를 조롱하는 방법을 찾고 있습니다. 좀 더 구체적으로 말하자면, 메소드를 모의 해 3 번째로 불렀을 때 그 결과에 대해 주장하고 싶습니다.NSubstitute를 사용하여 AutoFixture에서 다른 값을 반환하는 동일한 메소드에 대한 호출 시퀀스를 모방하는 방법은 무엇입니까?

이 구문은 하지 정확하지만 내가 달성하고 싶은 시뮬레이션 :

var foo = Fixture.Freeze<IFoo>(); 
foo.Exists(Arg.Any<object>()).Returns("firstcall").SecondCall("secondcall").ThirdCall("thirdcall"); 

이이 AutoFixture에서 할 수 있습니까?

편집 : 마크에 의해 지적한대로 이것은 AutoPixture 자체가 아닌 NSubstitute와 관련된 질문입니다. 제목을 업데이트했습니다.

답변

2

나는 질문을 제출하기 전에 답을 발견, 그래서 여기에 대한 답변을 게시합니다 : Exists()가 세 번 호출 될 때

Fixture.Freeze<IFoo>() 
    .Exists(Arg.Any<object>()) 
    .Returns("default", "firstcall", "secondcall", "thirdcall"); 

지금, 응답이 다음 "secondcall" 다음 "thirdcall" "firstcall"됩니다. 이 후 모든 통화에는 "default"이 수신됩니다.

+0

AFAICT, 이것은 기본 동적 모의 라이브러리 (NSubstitute?)의 기능이며 AutoFixture와는 거의 관계가 없습니다. –

+0

@ MarkSeemann 아, 맞습니다. 고마워요. 답변을 업데이트합니다. –