私は 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 のインターフェイス (またはその他のプリミティブ) が見つからないためです。私の質問は単純です:この値がどうあるべきかをMoqAutoMockerに伝える方法はありますか?
事前に、お読みいただきありがとうございます。