希望有人能帮我解决这个问题。我正在编写一个测试,它将检查何时调用 Start() 方法,是否将调用 StartProcOld 或 StartProcNew 方法。它们每个都包含一个 if 语句,该语句将检查是否满足条件(标志)并根据该条件运行这些方法之一。我的问题是测试一直失败,即使在调试时我可以看到为条件调用的实际正确方法,测试失败并说它被调用了 0 次。这是我的测试代码,用于检查是否调用了 StartProcOld。谢谢。
[TestFixture]
public class SomeTests
{
private Mock<BringClass> _BringClassMock;
private NameValueCollection _mainC;
private ClassWhereStartSitsIn.ClassWhereStartSitsIn _plugin;
private SqlConnection _connection;
private string _webServiceUrl;
[SetUp]
public void Setup()
{
_BringClassMock = new Mock<BringClass>();
_mainC= new NameValueCollection();
_plugin = new ClassWhereStartSitsIn.ClassWhereStartSitsIn();
_pluginMock = new Mock<ClassWhereStartSitsIn.ClassWhereStartSitsIn>();
_mockInterface = new Mock<IBringPlugIn>();
_connection = new SqlConnection();
_webUrl = "http://test.com";
_mainC.Add("Id", "STRING");
_mainC.Add("Setting", "5");
_mainC.Add("MainPath", "G:\\Folder");
}
[Test]
public void StartProcOldIsCalled()
{
_mainC.Add("Flag", "FALSE");
_BringClassMock.Setup(x => x. StartProcOld(_mainC["Id"],It.IsAny<ClassWhereStartSitsIn.ClassWhereStartSitsIn()>, _mainC["Setting"]).CallBack<string, IInterfaceClassWhereStartSitsIn, int>((a,b,c) => new NameValueCollection());
_plugin.Start(_connection, _webUrl, _mainC);
_BringClass.Verify(x => x.StartProcOld(_mainC["Id"],It.IsAny<ClassWhereStartSitsIn.ClassWhereStartSitsIn()>, 5), Times.Once());
}