我现在有这样的情况。在下面的代码中,我正在运行 Visual Studio Intellitetest,但是我能够使用假程序集模拟 A 类和 B 类并能够运行探索。但是当涉及到 B 类的构造函数时,PEX 试图在构造函数级别 B 上实例化一个具体类,然后尝试调用一个函数(即 _c.CMethod())。在这种情况下,Pex 抛出运行时警告“无法检测方法”并通过将代码覆盖率降至最低来中止代码探索。我正在关注这篇文章来模拟复杂的对象。
示例代码
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";
}
}