1

我现在有这样的情况。在下面的代码中,我正在运行 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";
    }
}
4

0 回答 0