xunit.net - net - xUnidad: ¿Afirmar que dos listas<T> son iguales?
xunit git (3)
xUnit.Net reconoce colecciones por lo que solo necesita hacer
Assert.Equal(expected, actual); // Order is important
Puede ver otras aserciones de colecciones disponibles en CollectionAsserts.cs
Para la biblioteca NUnit , los métodos de comparación de colecciones son
CollectionAssert.AreEqual(IEnumerable, IEnumerable) // For sequences, order matters
y
CollectionAssert.AreEquivalent(IEnumerable, IEnumerable) // For sets, order doesn''t matter
Más detalles aquí: CollectionAssert
MbUnit también tiene aserciones de colección similares a NUnit: Assert.Collections.cs
Hola, soy nuevo en TDD y xUnit, así que quiero probar mi método que es algo así como:
List<T> DeleteElements<T>(this List<T> a, List<T> b);
por supuesto, ese no es el método real :) ¿Hay algún método de Assert que pueda usar? Creo que algo como esto sería agradable
List<int> values = new List<int>() { 1, 2, 3 };
List<int> expected = new List<int>() { 1 };
List<int> actual = values.DeleteElements(new List<int>() { 2, 3 });
Assert.Exact(expected, actual);
¿Hay algo como esto?
En la versión actual de XUnit (1.5) puedes simplemente usar
Assert.Equal (esperado, real);
El método anterior hará un elemento por comparación de elementos de las dos listas. No estoy seguro de si esto funciona para cualquier versión anterior.
Con xUnit, si desea seleccionar las propiedades de cada elemento para probar, puede usar Assert.Collection.
Assert.Collection(elements,
elem1 => Assert.Equal(expect1, elem1.SomeProperty),
elem2 => {
Assert.Equal(expect2, elem2.SomeProperty);
Assert.True(elem2.TrueProperty);
});
Esto prueba el conteo esperado y asegura que cada acción sea verificada.