gpt4 book ai didi

c# - 在 C#/.NET 中模拟没有无参数构造函数的对象

转载 作者:IT王子 更新时间:2023-10-29 04:09:29 25 4
gpt4 key购买 nike

是否可以从不提供无参数构造函数且不向构造函数传递任何参数的类创建模拟?也许动态创建 IL?

背景是不想为了测试而定义接口(interface)。解决方法是为测试提供无参数构造函数。

最佳答案

没问题。在这个例子中,我将使用 Moq,一个非常棒的模拟库。

例子:

public class MyObject
{
public MyObject(object A, object B, object C)
{
// Assign your dependencies to whatever
}
}

Mock<MyObject> mockObject = new Mock<MyObject>();
Mock<MyObject> mockObject = new Mock<MyObject>(null, null, null); // Pass Nulls to specific constructor arguments, or 0 if int, etc

但在许多情况下,我将 Mock 对象指定为参数,以便我可以测试依赖关系:

Mock<Something> x = new Mock<Something>();
MyObject mockObject = new MyObject(x.Object);

x.Setup(d => d.DoSomething()).Returns(new SomethingElse());

etc

关于c# - 在 C#/.NET 中模拟没有无参数构造函数的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5262881/

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