我正在使用Typemock隔离器8.6.2.0版本。 我有以下课程:
public class A
{
public B b { get; }
public A()
{
b = new B();
}
}
public class B
{
public B()
{
Console.WriteLine("In B c'tor");
}
public void doSomething()
{
}
}
测试方法是:
public void test()
{
Isolate.Fake.NextInstance<B>();
A a = new A();
var bObject = a.b;
bObject.doSomething();
Isolate.Verify.WasCalledWithAnyArguments(() => bObject.doSomething());
}
运行测试时,出现以下异常:“无法在真实对象上进行验证-改为使用伪造的对象”,但是对象被伪造了! 有谁知道为什么会发生以及如何解决?
答案 0 :(得分:3)
NextInstance返回一个可以调用Verify的句柄。现在,您将返回的手柄扔掉了。
Verifying is done on the instance returned from Isolate.Fake.NextInstance.
答案 1 :(得分:3)
这样编写测试: `
public void test()
{
var fake = Isolate.Fake.NextInstance<B>();
A a = new A();
var bObject = a.b;
bObject.doSomething();
Isolate.Verify.WasCalledWithAnyArguments(() => fake.doSomething());
}
`