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命令”字符串。
难道这是我应该做的事情还是我做的这一切错了?
我只开始进行单元测试和嘲笑,所以我仍然不确定应该如何结合在一起。