我现在有这样的情况。在下面的代码我运行Visual Studio Intellitest,但是我能够使用假装配模拟类A和B并能够运行探索。但是当谈到B类的构造函数时,PEX试图在构造函数级别B上实例化一个Concrete类,然后尝试调用一个函数(即_c.CMethod())。在这种情况下,Pex抛出运行时警告“无法检测方法”并通过将代码覆盖率降至最低来中止代码探索。我正在关注这个article来模拟复杂的对象。
示例代码
public class A
{
private readonly IB _IB;
public A(IB IntfB)
{
_IB = IntfB;
}
public void Amethod()
{
_IB.CallingBMethod();
}
}
public class B
{
public B()
{
C _c = new C();
_c.CMethod();
}
public string CallingBMethod()
{
return "Return from BMethod";
}
}
public interface IB
{
string CallingBMethod();
}
enter code here
public class C
{
public string CMethod()
{
return "Return from CMethod";
}
}