我是 StructureMap 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 这个值应该是什么?
提前感谢您的阅读。