gpt4 book ai didi

c# - 模拟方法执行真实代码而不是模拟,为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 20:50:11 25 4
gpt4 key购买 nike

<分区>

我正在使用 .CallBase() 来执行 TsExporter 类中 .Export() 方法的模拟背后的真实代码。

另一方面,.RetrieveTranslations() 也在执行真实代码,并没有像“我告诉它这样做”那样返回模拟值。

代码如下:

[TestFixture]
public class TestClass
{
private Mock<ITsExporter> _tsExporter;

[SetUp]
public void SetUp()
{
_tsExporter = new Mock<TsExporter>().As<ITsExporter>();

//This is calling the real code which is good
_tsExporter.Setup(x => x.Export(It.IsAny<TsFileModel>(), It.IsAny<string>()))
.CallBase();
//but this is calling the real code too, and I was expecting not to
//call it and return the mock instead...
_tsExporter.Setup(x => x.RetrieveTranslations(It.IsAny<DataTable>(),
It.IsAny<string>(), It.IsAny<string>()))
.Returns(new DataTable());
}

[Test]
public void Test()
{
_tsExporter.Object.Export(new TsFileModel(), "");
}
}

我错过了什么?

谢谢!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com