2014-01-18 3 views
1

Я новичок в тестировании JUnit, и у меня есть некоторые вопросы об тестировании. Мой код Java: проверьте, является ли число (целое число) мощностью другого числа (целое число) и возвращает логическое значение True/False. Только один метод с именем isPower (int x, int y), который вычисляет if (x% y) == 0, это короткая презентация моего кода.Необходимо выполнить junit-тесты для кода Java, которые проверяют, является ли число числом другого номера

Я хочу знать, какие тесты я должен выполнить на этом Java-коде, если возвращает только true или false, и я должен выполнить функции setup() и teardown()?

+0

'(х% у) == 0 'будет только испытание, если' x' является кратным 'y', а не степенью' y'. – rgettman

+0

Если вы действительно пытаетесь определить, является ли 'x' мощность' y' (это не то, что делает 'x% y'), убедитесь, что вы проверяете случаи, когда' y == 1', где 'x == == 1' и 'x! = 1'. – ajb

ответ

1

Нет необходимости в setup() и teardown(), потому что не должно быть ничего, чтобы установить. Обычно они используются при настройке некоторой среды, такой как база данных, служба и т. Д. В вашем случае у вас, вероятно, будет один класс с одним (статическим) методом.

Обычная практика заключается в проверке крайних случаев, т. Е. Отрицательных чисел, 0, максимальных чисел и позволяет вашему тесту четко документировать с помощью тестового кода то, что вы ожидаете. Допустим, ваш тест не должен генерировать исключения на любом входе, потому что вы делите и не размножаетесь. Попробуйте Integer.MIN_VALUE и Integer.MAX_VALUE для каждого и для обоих.

Некоторые модули тестирования модулей могут генерировать случайные данные в качестве входных данных для вашего теста, чтобы они проверяли все случаи краев.

Небольшой пример:

@Test 
public void test_nominator_nonzero_denominator_zero() { 
    MyClass mathObject = new MyClass(); 
    assertFalse("0 can't be a divisor of a non-zero number", mathObject.isPower(5, 0)); 
} 

Вы вопрос звучит как описание функции, которая находит делитель или множитель X.

+0

Так что я могу сделать что-то вроде этого: \t 'public void test1() { \t \t assertEquals (true, Power.isPower (8, 2)); \t} ' – Alienware

+0

, и просто добавьте каждый тест отдельно для всех типов сценариев, о которых вы можете думать. –

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