单元测试:断言List <int>,List <datetime>和DateTime

时间:2016-11-03 19:47:48

标签: c# unit-testing

我试图验证3单元测试;我发现它们总是出错了,因为断言可能不适应那种类型的对象(或者在创建对象时添加一些东西)。

这是我的代码:

apt purge

任何人都可以看到我如何通过调整断言来调整我的对象,添加一些东西以使其工作或其他任何东西?

提前感谢您的回答。

2 个答案:

答案 0 :(得分:2)

在断言集合时使用CollectionAssert.AreEqual Method (ICollection, ICollection)

CollectionAssert.AreEqual(expected, actual);
  

验证两个指定的集合是否相等。断言失败了   如果收集不相等。

[TestMethod]
public void NumeroSemaineTest()
{
    //1 - Initialisation des variables
    DateTime DateTest = new DateTime(2016,11,3);
    List<int> expected = new List<int>(new int[] { 44, 45, 46, 47, 48 });
    List<int> actual;

    //2 - Appel de la méthode à tester
    actual = SaisieHeures.SaisieHeures.NumeroSemaine(DateTest);

    //3 - Vérification du résultat
    CollectionAssert.AreEqual(expected, actual);
    Assert.Inconclusive("Vérifiez l\'exactitude de cette méthode de test.");
}

使用DateTime的测试看起来是正确的。如果它失败那么这意味着你应该检查它正在测试的代码,以确保它正在做预期的事情。

答案 1 :(得分:1)

比较集合时,您应该使用this line(如果您想通过比较其项目来确保集合相等):

[TestMethod]
public void NumeroSemaineTest()
{
    //1 - Initialisation des variables
    DateTime DateTest = new DateTime(2016,11,3);
    List<int> expected = new List<int>(new int[] { 44, 45, 46, 47, 48 });
    List<int> actual;

    //2 - Appel de la méthode à tester
    actual = SaisieHeures.SaisieHeures.NumeroSemaine(DateTest);

    //3 - Vérification du résultat
    Assert.IsTrue(expected.SequenceEqual(actual));
    Assert.Inconclusive("Vérifiez l\'exactitude de cette méthode de test.");
}