Трудно ответить из-за некоторых несоответствий в первоначальном вопросе, но я буду опираться на ваш код конструктора, а не на ваш пример теста.
Прежде всего, я бы проверил для массива точек <3 или> 3 соответствующее исключение (которое вы должны проверить и выбросить в своем конструкторе).
Во-первых, я бы дал ваш конструктор, если массив точек будет плохим:
public Triangle(Point[] s)
{
// you could use more specific ArgumentNullException for first,
// IllegalOperationException for second, etc, you get the point
// (no pun intended).
if (s== null || s.Length != 3 || s.Any(x => x == null))
throw new ArgumentException("s");
...
}
Тогда я бы проверил на нулевую или неправильную длину
[TestMethod]
[ExpectedException(typeof(ArgumentException))]
public void TriangleConstructorWithNullPoints()
{
Point[] s = null;
Triangle target = new Triangle(s);
}
[TestMethod]
[ExpectedException(typeof(ArgumentException))]
public void TriangleConstructorWithFourPoints()
{
Point[] s = new Point[4];
Triangle target = new Triangle(s);
}
Тогда я бы проверил общий случай. Возьмите 3/4/5 треугольник, например:
[TestMethod]
public void TriangleConstructorWithFourPoints()
{
Point[] s = new []
{
new Point { x = 0, y = 0 },
new Point { x = 4, y = 0 },
new Point { x = 4, y = 3 }
};
Triangle target = new Triangle(s);
Assert.IsTrue(target.Sides.Contains(3.0));
Assert.IsTrue(target.Sides.Contains(4.0));
Assert.IsTrue(target.Sides.Contains(5.0));
}
Тогда я бы протестировал любые граничные условия, например, массив длины 3, но одна из точек в массиве равна нулю (проверьте наличие соответствующих исключений) или, если любые две точки совпадают, и т. Д.