2010-11-09 16 views
36

W języku C# jak mogę przetestować jednostkę większą niż warunek?C# test jednostkowy, jak przetestować więcej niż

I.e., iIf liczba rekordów jest większa niż 5, a test się powiódł.

Każda pomoc jest mile widziana

Kod:

int actualcount = target.GetCompanyEmployees().Count 
Assert. ? 

Odpowiedz

72
Assert.IsTrue(actualCount > 5, "The actualCount was not greater than five"); 
+0

Ale to najlepiej umieścić wiadomość, aby wiedzieć, dlaczego próba nie powiodła się: Assert.IsTrue (actualCount> 5, "RzeczywistyCount nie był większy niż pięć"); – McKay

+0

Dzięki, udało się. – kayak

+4

@McKay: Osobiście uważam, że zmarnowałem wysiłek. Jeśli test się nie powiedzie, zamierzam przyjrzeć się jego kodowi, więc nie zaoszczędziłbym wiele czasu * nawet wtedy, gdy się nie powiedzie * i większość asercji nigdy nie zawiedzie po pierwszym odprawie IME. –

6

Właściwy sposób to zrobić przy użyciu NUnit jest:

Assert.That(actualcount , Is.GreaterThan(5)); 
+8

"Microsoft.VisualStudio.TestTools.UnitTesting.Assert" nie zawiera definicji "To". w VS 2012. –

+0

Ani GreaterThan, ani LessThan, ani ... – stannius

+2

Tylko dobre dla nUnit! (ale dzięki za wskazówkę T :-)) – ShloEmi

0

actualCount.Should().BeGreaterThan(5);

+1

Wygląda dobrze, to jest metoda rozszerzenia? jaki obszar nazw należy zdefiniować? – ShloEmi

+0

To jest dobre tylko dla FluentAssertions, ale jak @ShloEmi powiedział NKnusperer, dobra wskazówka dla tych, którzy go używają. – RoLYroLLs

4

Ag eneric rozwiązanie, które może być używany z dowolnym porównywalnego rodzaju:

public static T ShouldBeGreaterThan<T>(this T actual, T expected, string message = null) 
    where T: IComparable 
{ 
    Assert.IsTrue(actual.CompareTo(expected) > 0, message); 
    return actual; 
} 
0

w xUnit to:

[Fact] 
    public void ItShouldReturnErrorCountGreaterThanZero() 
    { 
     Assert.True(_model.ErrorCount > 0); 
    } 
Powiązane problemy