2010-09-27 19 views
28

Estoy luchando para hacer una afirmación sobre la ausencia de un elemento en particular en una enumeración. En concreto, esto es lo que se ve como mi prueba:Creando una restricción NUnit que significa "{colección} no contiene {elemento}"

// Take an item from a queue of scheduled items... 
ItemQueue pendingQueue = schedule.PendingItems; // PendingItems is an IEnumerable<int> 
int item = pendingQueue.FirstItem; 

// ...process the item... 
processor.DoSomethingWith(item); 

// ...and the schedule must not contain the item anymore: 
Assert.That(schedule.PendingItems, Does.Not.Contain(item)); 

Por supuesto, Does.Not.Contain no es una restricción nUnit válida. ¿Cómo puedo expresarlo en una sintaxis fluida válida?

Respuesta

44
Assert.That(schedule.PendingItems, Has.No.Member(item)) 

con NUnit 2,4/2,5

5

Si está usando NUnit 2.4/2.5 puede retirar el collection constraints. Sólo

+0

Has.None.EqualTo (punto) resolvió mi problema. ¡Gracias! – Humberto

10

También puede algunos de los métodos CollectionAssert.

Por ejemplo:

CollectionAssert.DoesNotContain(schedule.PendingItems, item); 
+2

He editado su respuesta para incluir una muestra de código básico, ¡espero que no le importe! –

Cuestiones relacionadas