2017-03-28 1 views
1

AutoFixture.AutoMoq를 설정하여 추상 클래스를 조롱 할 때 특정 생성자를 사용하는 방법이 있습니까?AutoMoq 특정 생성자가있는 추상 클래스

내 추상 클래스에서 수행 된 구현을 테스트해야합니다. 그러나 하나의 특정 생성자를 사용해야합니다.

public abstract class A 
{ 
    public A(IQueryable q) // I need to use this 
    { /*...*/ } 
} 

감사합니다,


편집 :

나는이 작동하지 않는 여전히 다음과 같은 것을 사용하려고하지만하고있다. 클래스는 추상이므로 조롱해야하지만 매우 구체적인 생성자가 필요합니다.

AutoMoq에게 조롱 할 때 MockConstructorQuery 또는 GreedyMockConstructorQuery를 사용하지 말라고 말합니다. QueryableParamConstructorQuery를 사용하면됩니다.

fixture.Customize ( new ConstructorCustomization (typeof (A), new QueryableParamConstructorQuery())); 특정 생성자를해야 할 경우 두 번 테스트를 만들 때

답변

0

, 당신은 인수 목록을 전달할 수 있습니다

var q = fixture.Create<IQueryable>(); 
var a = new Mock<A>(q).Object; 

당신은 항상이 특정 생성자를 사용하는 AutoFixture의 동작을 변경해야하는 경우, 당신이 할 수있는 같은 것을 할 :

fixture.Register(q => new Mock<A>(q));