test net code xunit.net

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.