【发布时间】:2020-02-15 16:37:57
【问题描述】:
我不熟悉在 Visual Studio 2019 中使用 Moq 和 Xunit。
我想模拟在我的测试类的构造函数中调用的类的构造函数调用。 我的问题的简单演示:
public class MockedClass : IMockedClass
{
public MockedClass()
{
// don't call this
}
public List<string> Function1()
{ /* return a List<string> here */ }
}
public class MyClass
{
readonly IMockedClass mockedClass = null;
public MyClass()
{
mockedClass = new MockedClass();
}
public string Function2()
{ /* return a string here */ }
}
public class MyClassTest
{
[Fact]
public string Function2Test()
{
var returnMock = new List<string>() { "1", "2", "3" };
var mockMockedClass = new Mock<IMockedClass>();
mockMockedClass.Setup(x => x.Function1()).Returns(returnMock);
var myClass = new MyClass();
var result = myClass.Function2();
...
}
}
我的问题是,在测试Function2Test 中,MyClass 的构造函数被调用,它调用了MockedClass 的构造函数。
但我不希望MockedClass 的构造函数被调用。
如何模拟MockedClass的构造函数?
【问题讨论】:
标签: c# unit-testing moq xunit