Comment ce test peut-il échouer?
[TestMethod]
public void Get_Code()
{
var expected = new List<int>();
expected.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 });
var actual = new List<int>();
actual.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 });
Assert.AreEqual(expected, actual);
// Assert.AreSame(expected, actual) fails
// Assert.IsTrue(expected.Equals(actual)) fails
}
c#
visual-studio-2010
unit-testing
mstest
Ray Cheng
la source
la source
CollectionAssert.AreEquivalent
place msdn.microsoft.com/en-us/library/ms243779.aspxCollectionAssert.AreEqual
peut être nettement plus lent queAssert.IsTrue...SequenceEqual
Je suppose que cela aidera
la source
Si vous voulez vérifier que chacun contient la même collection de valeurs, vous devez utiliser:
Éditer:
la source
J'ai essayé les autres réponses dans ce fil, et elles ne fonctionnaient pas pour moi et je comparais des collections d'objets qui avaient les mêmes valeurs stockées dans leurs propriétés, mais les objets étaient différents.
Appel de méthode:
Méthode de comparaison:
private static void CompareIEnumerable<T>(IEnumerable<T> one, IEnumerable<T> two, Func<T, T, bool> comparisonFunction) { var oneArray = one as T[] ?? one.ToArray(); var twoArray = two as T[] ?? two.ToArray(); if (oneArray.Length != twoArray.Length) { Assert.Fail("Collections are not same length"); } for (int i = 0; i < oneArray.Length; i++) { var isEqual = comparisonFunction(oneArray[i], twoArray[i]); Assert.IsTrue(isEqual); } }
la source
Equals
méthode et laCollectionAssert
volonté fonctionnera.ce test compare une entrée de date, vérifie si c'est une année bissextile, le cas échéant, génère 20 années bissextiles à partir de la date saisie, sinon, affiche les 20 prochaines années bissextiles, myTest. à partir d'une liste appelée Testing contenant les valeurs calculées requises. partie d'un exercice que je devais faire.
[TestMethod] public void TestMethod1() { int testVal = 2012; TestClass myTest = new TestClass(); var expected = new List<int>(); expected.Add(2012); expected.Add(2016); expected.Add(2020); expected.Add(2024); expected.Add(2028); expected.Add(2032); expected.Add(2036); expected.Add(2040); expected.Add(2044); expected.Add(2048); expected.Add(2052); expected.Add(2056); expected.Add(2060); expected.Add(2064); expected.Add(2068); expected.Add(2072); expected.Add(2076); expected.Add(2080); expected.Add(2084); expected.Add(2088); var actual = myTest.Testing(2012); CollectionAssert.AreEqual(expected, actual); }
la source
List<AdminUser> adminDetailsExpected = new List<AdminUser>() { new AdminUser {firstName = "test1" , lastName = "test1" , userId = "001test1" }, new AdminUser {firstName = "test2" , lastName = "test2" , userId = "002test2" } };
//Acte
List<AdminUser> adminDetailsActual = RetrieveAdmin(); // your retrieve logic goes here
//Affirmer
Assert.AreEqual(adminDetailsExpected.Count, adminDetailsActual.Count); //Test succeeds if the count matches else fails. This count can be used as a work around to test
la source
Les assertions fluides effectuent des comparaisons approfondies de tableaux
actualArray.Should().BeEquivalentTo(expectedArray)
la source