C# moq不返回我在mock.Setup中定义的内容
我在用Moq模拟c#中的一个函数C# moq不返回我在mock.Setup中定义的内容,c#,moq,C#,Moq,我在用Moq模拟c#中的一个函数 public void Mapper_GetProductMappingTest() { //Arrange: Mapping mapping= new Mapping() { code = "AB" }; Mapper mapper = new Mapper(new MongoStore()); CaseProduct caseP
public void Mapper_GetProductMappingTest()
{
//Arrange:
Mapping mapping= new Mapping()
{
code = "AB"
};
Mapper mapper = new Mapper(new MongoStore());
CaseProduct caseProduct = new CaseProduct()
{
ProductID = "ABC",
};
Mock<Mapper> mock = new Mock<Mapper>(new MongoStore());
mock.Setup(x => x.GetMapping(caseProduct)).Returns(mapping);
// why does it return the caseproduct not the mapping?!
var mapped = mock.Object.GetMapping(caseProduct);
Assert.IsTrue(mapped.code == "AB");
public void映射器_GetProductMappingTest()
{
//安排:
映射映射=新映射()
{
code=“AB”
};
Mapper Mapper=new Mapper(new MongoStore());
CaseProduct CaseProduct=新CaseProduct()
{
ProductID=“ABC”,
};
Mock Mock=new Mock(new MongoStore());
mock.Setup(x=>x.GetMapping(caseProduct)).Returns(mapping);
//为什么它返回caseproduct而不是映射?!
var-mapped=mock.Object.GetMapping(caseProduct);
Assert.IsTrue(mapped.code==“AB”);
此Assert.IsTrue失败,mock.Object.GetMapping(caseProduct)返回ABC而不是AB。
有人能帮我吗?Mapper.GetMapping是否有
virtual
修饰符?另外,请尝试ifmock.Setup(x=>x.GetMapping(It.IsAny())。返回(映射)
的工作方式与您预期的一样。它将匹配任何对GetMapping的调用,因此应该可以工作,我们将查看您的代码或Moq是否有问题。是的,它是虚拟的,并且我尝试了mock.Setup(x=>x.GetMapping(It.IsAny())。返回(mapping)仍然有相同的问题。这很奇怪。你还有其他建议吗?我得到的错误是找不到ProductID。我的Moq版本是4.2.1408.717。在这个版本中,mock
工作正常,并返回假映射
对象。