C#单元测试Visual Studio 2013测试失败

时间:2014-11-02 18:54:37

标签: c# unit-testing visual-studio-2013

我为单元测试编写了一个类Complex和类。当+运算符执行测试时会崩溃我的错误。为什么呢?

复合物:

    private double re,im;

    public Complex(double re = 0.0, double im = 0.0)
    {
        this.re = re;
        this.im = im;
    }

    public static Complex operator +(Complex C1, Complex C2)
    {

        return new Complex(C1.re+C2.re,C1.im+C2.im);
    }

单元测试:

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void ComplexPlus()
    {
        Complex c1 = new Complex(4.6, 1.6), c2 = new Complex(6.63, 2.67);
        Complex c3 = c1 + c2;
        Complex c4 =  new Complex(11.23, 4.27);
        Assert.AreEqual(c3,c4 );
    }
}

2 个答案:

答案 0 :(得分:1)

问题在于你将AreEqual称为两个类Complex。你应该检查他们的属性是否相等!

以下是您需要的代码。

Assert.AreEqual(c3.Re,c4.Re);
Assert.AreEqual(c3.Im,c4.Im);

编辑:添加属性

private double _re, _im;

public Complex(double re = 0.0, double im = 0.0)
{
    _re = re;
    _im = im;
}

public double Re
{
     get { return _re; }
     set { _re = value; }//or just get !
}

public double Im
{
     get { return _re; }
     set { _re = value; }//or just get !
}

检查就是这个。

Assert.AreEqual(c3.Re,c4.Re);
Assert.AreEqual(c3.Im,c4.Im);

答案 1 :(得分:0)

看起来你在2个项目中声明了同一个类。 删除一个并将一个项目的引用添加到另一个项目(添加对基础项目的引用以测试项目)。