Ich habe diese Assertion in meinem Test-CodeVerzögerte NUnit Assert Nachricht Auswertung
Assert.That(() => eventData.Count == 0,
Is.True.After(notificationPollingDelay),
"Received unexpected event with last event data" + eventData.Last().Description());
, die einige Bedingungen nach einer gewissen Zeit und bei einem Fehler behauptet erzeugt eine Nachricht. Es kann nicht ausgeführt werden, da die Nachrichtenzeichenfolge beim Start der Bestätigung und nicht beim Ende der Bestätigung erstellt wird. Daher ist die eventData
Sammlung immer noch leer (wie es anfänglich ist) und der Versuch, die Description
des letzten Elements in der Sammlung zu erhalten, schlägt fehl. Gibt es einen Workaround oder eine vernünftige Alternative dazu in NUnit
oder muss ich in meinen Tests auf Thread.Sleep
zurückgreifen?
PS: Ich benutze NUnit 2.5.10.
Soweit ich weiß, ist das keine native NUnit-Syntax. Welche Assertion-Bibliothek verwenden Sie? –
@DanielHilgarth - Dies ist eine gültige NUnit-Assert-Syntax, wenn das Constraint-basierte Modell verwendet wird. 'After' ist eine verzögerte Einschränkung http://www.nunit.org/index.php?p=delayedConstraint&r=2.6.2 –
@manojlds: Danke für die Info. Für alle Interessierten: [DelayedConstraint] (http://www.nunit.org/index.php?p=delayedConstraint&r=2.5.10) in Kombination mit [EqualConstraint] (http://www.nunit.org/index.php) ? p = equalConstraint & r = 2.5.10) mit dem [constrained-based assert module] (http://www.nunit.org/index.php?p=constraintModel&r=2.5.10). –