2014-07-17 2 views
1

한다고 가정 나는 다음과 같은 파라미터 테스트,InlineAutoData 데이터 특정 매개 변수 인수

[Theory] 
[InlineAutoData(typeof(IFoo), null) 
public void FooBar(IFoo foo, IBar bar) 
{ 
    // Do stuff 
} 

은 위의 IFooRuntimeType를 변환하는 방법에 대한 예외가 발생합니다 있습니다.

내 질문에, 첫 번째 매개 변수에 대한 멤버를 생성하고이 시나리오에서 두 번째로 null을 사용하도록 AutoFixture에 지시하거나 어떻게 할 수 있습니까?

내가 알 수있는 한 InlineAutoData에는 데이터를 순서대로 지정해야하고 지정되지 않은 데이터가 자동 생성되지만 이는 이상적은 아니며 내가 틀렸으면 좋겠다는 제한이 있습니다.

+2

가장 쉬운 해결책은 매개 변수의 순서를 변경하는 것입니다. –

+0

나는 그것을 그 자리에서 수정이 없다고 생각합니까? 불행히도 그것은 정말로 바람직한 해결책이 아닙니다. –

답변

-3
[Theory] 
[InlineAutoData(null)] 
public void FooBar(IBar bar, IFoo foo) 
{ 
    // Do stuff 
} 
+2

답안에 약간의 설명을주십시오 - 코드 만의 대답은 여기 주변의 선호도가 아닙니다 – StormeHawke

+1

저는 동의합니다.이 답변은 왜 이것이 좋은 해결책인지에 대한 설명이 필요합니다. 특히 질문자가 말한 매개 변수를 역으로 사용했을 때 그렇습니다. 탐탁지 않은. –

+1

저는이 점을 처음 접했지만 다음과 같은 이유를 설명합니다. "InlineData 값을 첫 번째 메서드 인수에 사용하고 나머지는 AutoData를 사용합니다 (InlineData 값이 부족한 경우)." per : https://github.com/AutoFixture/AutoFixture/wiki/Cheat-Sheet – Eclipse

0

은 나뿐만 아니라이 새로운 해요,하지만 난이 이유를 설명 할 것이다 생각한다 "는 첫 번째 방법 인자의 InlineData 값을 사용하고, InlineData 값이 밖으로 실행할 때 다음 (나머지 오토 데이터를 사용). " 당 : github.com/AutoFixture/AutoFixture/wiki/Cheat-Sheet

(@AlexAngas 제안 당 응답으로 추가되었습니다.)

관련 문제