dea*_*mon 31 .net c# reflection constructor mocking
是否可以从不提供无参数构造函数的类创建模拟,并且不将任何参数传递给构造函数?也许是动态创建IL?
背景是我不想仅为测试定义接口.解决方法是为测试提供无参数构造函数.
Tej*_*ejs 48
当然可以.在这个例子中,我将使用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
Run Code Online (Sandbox Code Playgroud)
但在许多情况下,我将Mock对象指定为参数,以便我可以测试依赖项:
Mock<Something> x = new Mock<Something>();
MyObject mockObject = new MyObject(x.Object);
x.Setup(d => d.DoSomething()).Returns(new SomethingElse());
etc
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19944 次 |
最近记录: |