Тестирование Java JUnit - PullRequest
0 голосов
/ 15 мая 2011

Крис написал функцию toBinary, которая имеет входной параметр целого числа и возвращает строку, представляющую двоичный эквивалент. Например, если функция вызывается с целым числом 3, возвращаемая строка должна быть «11».

Напишите последовательность тестовых спецификаций на английском языке, возможно, используя последовательность «задано», «когда» и «затем» и их эквивалентный код JUnit.

Мой ответ:

Тест должен охватывать нормальные случаи, крайние случаи и ошибочные случаи. Для целого числа, например 3, он должен преобразовать его в 11 после выполнения метода.

@Test
public void testToBinary() {
Binary aBinary = new Binary();
assertEquals(3, 11);
assertEquals(2, 10);
assertFail(10, 8575);
}

это правильно?

Ответы [ 4 ]

6 голосов
/ 15 мая 2011

Эти утверждения не имеют смысла - конечно, 3! = 11. Вам нужно применить метод преобразования к входным данным и убедиться, что выходные данные ожидаются.

assertEquals("11", aBinary.someConvertMethod(3));

Ожидаемое значение должно быть первым параметром, а фактическое значение - вторым параметром.

Кроме того, assertFail не является реальным методом. Есть assertNotEquals, это, вероятно, то, что вы ищете.

5 голосов
/ 15 мая 2011

В вашем примере кода, когда вы пишете 'assertEquals (3, 11);' Вы утверждаете, что 3 равно 11 (основание десять), которое всегда будет ложным.

Разве вам не нужно что-то вроде

assertEquals("11", toBinary(3));

Который проверяет, что ваша функция при заданном входе три возвращает строку «11».

1 голос
/ 15 мая 2011

Вы можете добавить тестовые случаи для нулевых и отрицательных чисел ..

0 голосов
/ 17 мая 2011

В первую очередь, каждый юнит-тест должен иметь самое одно утверждение. Как уже говорили другие, вы должны вызывать конструктор или метод, на который вы полагаетесь, в реальном тестовом примере: assertEquals("11",toBinary(3);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...