2011-02-11 6 views
3

저는 StructMap MoqAutoMocker의 열렬한 사용자입니다. 그러나 우리는 때때로 우리의 "옛 친구"와 만난다. 클래스 "검사기"를 가정MoqAutoMocker 및 프리미티브 생성자 매개 변수

public class Validator 
{ 
    private string _connectionString; 
    private IEventMachine _eventMachine; 

    public Validator(string connectionString, IEventMachine eventMachine) 
    { 
     _connectionString = connectionString; 
     _eventMachine = eventMachine; 
    } 
} 

클래스 위의 정말, 사실, 아마 난 그냥 내가 생각하지 못했습니다,이 게시물을 만들고있어, 몇 눈썹을 올릴를 중요하지 않습니다 내 코 끝에서 더 좋은 예다. 요점은 원시 데이터 유형 (을 ConnectionString을)와 인터페이스 (eventMachine)의 혼합이 포함되어 있다는 것입니다 - 단위 테스트 동안을, 나는 일반적으로 내 기대 설정 :

[TestMethod] 
public void Validate_WhenCalled_PublishesEnterEvent() 
{ 
    // Arrange 
    var Instance = new MoqAutoMocker<Validator>(); 
    var eventMachineMock = Mock.Get(AutoMock.Get<IEventMachine>()); 

    // Act 
    Instance.Validate(); 

    // Assert 
    eventMachineMock.Verify(m => m.Publish(It.IsAny<string>(), Times.Once());   
} 

그래서 질문입니다 : MoqAutoMocker이 connectionString 인수를 받아들이지 못하기 때문에 위의 인터페이스는 찾을 수 없기 때문에 위의 코드는 작동하지 않습니다. 내 질문은 간단합니다 : MoqAutoMocker에게이 값을 알려주는 방법이 있습니까?

미리 읽어 주셔서 감사합니다.

답변

2

아니, 나는 거기에 방법이있다 - 그것은 AutoMocker의 한계입니다.

우리는 설정 개체를 사용하여 기본 생성자 매개 변수를 사용하지 않는 경향이 있습니다 (How we handle application configuration 참조)

관련 문제