gpt4 book ai didi

c# - 验证一个方法是否在单元测试中的另一个方法中被调用

转载 作者:行者123 更新时间:2023-12-03 10:59:22 25 4
gpt4 key购买 nike

我正在对 View 模型进行单元测试,并使用带有起订量的 mbunit 来模拟类的私有(private)方法,但我的要求是在测试的断言部分验证是否调用了另一个方法(这是一个对话框)存在于单元测试下的方法中。

最佳答案

您可以使用以下代码轻松检查使用 Moq 调用的方法:

[TestFixture]
public class UnitTest1
{
[Test]
public void TestMethod1()
{
// Create a mock of your interface and make the methods verifiable.
var mock = new Mock<ISomeDependency>();
mock.Setup(m => m.DoSomething())
.Verifiable();

// Setup your class which you expect to be calling the verifiable method
var classToTest = new SomeClass(mock.Object);
classToTest.DoWork();

// Verify the method is called
mock.Verify(m => m.DoSomething());
}
}



public class SomeClass
{
private readonly ISomeDependency _someDependency;

public SomeClass(ISomeDependency someDependency)
{
_someDependency = someDependency;
}

public void DoWork()
{
_someDependency.DoSomething();
}
}

public interface ISomeDependency
{
void DoSomething();
}

public class SomeDependency : ISomeDependency
{
public void DoSomething()
{

}
}

基本上,您要寻找的只是单元测试的排列部分中的可验证性,以及断言部分中的验证性。

关于c# - 验证一个方法是否在单元测试中的另一个方法中被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22376497/

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