2011-02-11 97 views
3

我是StructureMap 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這個值應該是什麼?

提前,謝謝你的閱讀。

回答