0
我在使用moq進行一些單元測試時遇到了一些麻煩。我應該使用mocks來測試方法實現嗎
如果我有這樣的功能:
public string GetName(IMapinfoWrapper wrapper)
{
return wrapper.Evaluate("My com command");
///"My comm command" is the same all the time.
}
然後,我有一個測試,檢查的GetName函數的返回值:
[Test]
public void Test()
{
Mock<IMapinfoWrapper> mock = new Mock<IMapinfoWrapper>();
mock.Expect(mapinfo => mapinfo.Evaluate(It.IsAny<String>()))
.Returns("TableName");
Assert.AreEqual("TableName", GetName(mock.object));
}
所以我的問題是要模擬進行定義像這樣:
mock.Expect(mapinfo => mapinfo.Evaluate(It.IsAny<String>()))
.Returns("TableName");
或像這樣:
mock.Expect(mapinfo => mapinfo.Evaluate("My com command")
.Returns("TableName");
我使用第二種方法唯一的問題是,我覺得我綁定方法GetName的實現,以便始終在內部使用「我的com命令」字符串。
難道這是我應該做的事情還是我做的這一切錯了?
我只開始進行單元測試和嘲笑,所以我仍然不確定應該如何結合在一起。