2013-03-17 3 views
0

Я пытаюсь получить основы модульных тестов, и все учебники используют огромные примеры. Кроме того, я написал следующий код и тест, и хотел бы знать, если это правильно:Это правильный единичный тест?

class Foo 
{ 
    public bool TwoDecisions(int X, int Y) 
    { 
    if(X>Y) 
     return true; 
    else return false; 
    } 
} 

TEST 
public class FooTests 
    { 
    [Test] 
    public void TwoDecisions_TRUE() 
    { 
     Foo f=new Foo(); 
     bool expected = true; 
     bool actual = FooTests.TwoDecision(10,9) 
     Assert.AreEqual(expected, actual); 
    } 
    } 
+1

Что происходит, когда вы пытаетесь? Кроме того, ваш метод можно было бы написать 'return X> Y;' –

+0

На самом деле я не могу попробовать его (вне дома сейчас), поэтому я учусь и просто готовлюсь. – user970696

ответ

1

Это испытание на блок, так что в этом смысле это правильно. Но это единственный тест, который требует этот класс? нет. Вы проверяете ветку своего оператора if, который возвращает true. Вы должны также проверить случай, когда X < Y, чтобы полностью «накрыть» ваш код.

+0

Я вижу, у меня должен быть другой метод проверки, возвращающий false и, возможно, два: один для «=», а другой для «<». – user970696

+0

@TerryS правильно - вы должны искать весь код в своем классе. Это означает, что вы должны выполнить тестовые тесты, которые проверяют все пути вашего кода. – ColinE

+0

И не забывайте случай, когда x == y – Jocke

Смежные вопросы