gpt4 book ai didi

unit-testing - 如何使用 It.IsAny<> 和 Moq 模拟输出参数?

转载 作者:行者123 更新时间:2023-12-04 13:45:16 26 4
gpt4 key购买 nike

我想验证一个方法只被调用一次。

mock.Verify(x => x.Method("String", out It.IsAny<StringBuilder>()), Times.Once);

我不在乎第二个参数,它可以是任何东西。

由于 out,我收到以下错误消息范围:

'out' argument must be an assignable variable, field or array element

最佳答案

尝试按照错误消息说明操作并将 out 参数放入变量中。

var builder = new StringBuilder();
mock.Verify(x => x.Method("String", out builder), Times.Once);

这是一个在测试时通过的完整示例。
[TestClass]
public class ExampleTest {
public interface IInterface {
void Method(string p, out StringBuilder builder);
}

public class MyClass {
private IInterface p;

public MyClass(IInterface p) {
this.p = p;
}

public void Act() {
var builder = new StringBuilder();
p.Method("String", out builder);
}
}

[TestMethod]
public void Should_Ignore_Out() {
//Arrange
var mock = new Mock<IInterface>();
var sut = new MyClass(mock.Object);

//Act
sut.Act();

//Assert
var builder = new StringBuilder();
mock.Verify(x => x.Method("String", out builder), Times.Once);
}
}

关于unit-testing - 如何使用 It.IsAny<> 和 Moq 模拟输出参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49978516/

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