2014-11-12 2 views
4

메서드의 반환 값을 비 결정적 방식으로 자동 생성하고 싶습니다. 즉, 모든 호출/테스트를 실행할 때마다 메서드에서 임의의 값을 반환 할 것으로 기대합니다. 어떻게 속성에 대한 비슷한 일을 달성 할 수있는 방법을 찾을 수 this 같은 질문에메서드의 반환 값을 AutoFixture로 채우는 방법

public interface IReturn 
    { 
     bool BoolMethod(); 
     int IntMethod(); 
    } 

    [Fact] 
    public void AllReturnsFromAutofixtureMethodsAreFalse() 
    { 
     IFixture fixture = new Fixture().Customize(new AutoNSubstituteCustomization()); 
     IEnumerable<IReturn> theBools = fixture.CreateMany<IReturn>(); 
     Assert.True(theBools.All(tb => tb.BoolMethod() == false)); 
     Assert.True(theBools.All(tb => tb.IntMethod() == 0)); 
    } 

, 그러나하지 방법 :이 순간을 위해 항상 기본 메서드 호출의 값을 반환합니다. 어떤 생각? 내가 MOQ 라이브러리 그러나 유추, NSubstitute 정의와 AutoFixture을 사용하지 않은

+4

Moq에는 적절한 * AutoConfiguredMoqCustomization *이 있습니다. 나는 당신이 [AutoConfiguredNSubstituteCustomization] (https://github.com/AutoFixture/AutoFixture/blob/master/Src/AutoNSubstitute/AutoConfiguredNSubstituteCustomization.cs)을 봐야한다고 생각합니다. – sgnsajgon

+0

감사합니다. 약간 오래된 버전의 AutoNSubstitute 통합이 사용 된 것 같습니다. 그래서 찾을 수 없었습니다. 당신의 의견을 대답으로 표시 해달라고. –

답변

3

은, AutoConfiguredNSubstituteCustomization 클래스가 원할하도록 동작을 날조 고급 AutoFixture을 달성하기 위해 사용되어야한다는 것을 보인다. 이 도구를 사용하면 스텁 메소드에서 결과를 자동으로 생성 할 수있을뿐만 아니라 모의 객체 체인을 생성하고 정지 된 객체를 체인에 주입하는 등의 작업을 수행 할 수 있습니다.

관련 문제