构造函数的单元测试

hol*_*ard 3 c# unit-testing mstest

我正在实验室进行单元测试,下面是我正在测试的应用程序中的一段代码。大多数单元测试都已完成,但关于下面的构造函数,我只是不知道如何测试它。例如,构造函数到底对数组元素做了什么?测试构造函数的好方法是什么?

是否有一个善良的灵魂可以给我一个正确的方向踢?

  public struct Point { 
    public int x, y;

    public Point(int a, int b) {
      x = a;
      y = b;
    }
  }
Run Code Online (Sandbox Code Playgroud)

...

  public Triangle(Point[] s) {
    sides = new double[s.Length];
    sides[0] = Math.Sqrt(Math.Pow((double)(s[1].x - s[0].x), 2.0) + Math.Pow((double)(s[1].y - s[0].y), 2.0));
    sides[1] = Math.Sqrt(Math.Pow((double)(s[1].x - s[2].x), 2.0) + Math.Pow((double)(s[1].x - s[2].x), 2.0));
    sides[2] = Math.Sqrt(Math.Pow((double)(s[2].x - s[0].x), 2.0) + Math.Pow((double)(s[2].x - s[0].x), 2.0));
  }
Run Code Online (Sandbox Code Playgroud)

...

        [TestMethod()]
        public void TriangleConstructorTest1()
        {
            Point[] s = null; // TODO: Initialize to an appropriate value
            Triangle target = new Triangle(s);
            Assert.Inconclusive("TODO: Implement code to verify target");
        }
Run Code Online (Sandbox Code Playgroud)

Sim*_*mon 5

也许我错过了一些东西,但这不会吗?

   [TestMethod()]
        public void PointConstructorTest1()
        {
            Point target = new Point(1.5, 2.0);
            Assert.AreEqual(1.5, target.x);
            Assert.AreEqual(2.0, target.y);
        }
Run Code Online (Sandbox Code Playgroud)

测试变量分配并没有多大意义,但实际上......

  • 事实上,我发现测试作业很有价值。如果内部表示发生变化等,那么很高兴知道该变化没有破坏现有的测试。因此,我倾向于为所有构造函数甚至简单的属性编写单元测试,但这又只是我的 0.02 美元 (2认同)