В простой реализации что-то вроде этого:
Код: Выделить всё
int i;
read(i);
print(10/i-3);
Код: Выделить всё
public static void dbz(int x, int y) { // Change the signature as needed
if (x > 0) {
if (y > 0) {
int result = 99 / (x - x); // This will cause division by zero if executed
System.out.println(result);
} else {
System.out.println("Branch 1");
}
} else {
System.out.println("Branch 2");
}
}
Вопрос, который я задаю я пытаюсь ответить:
Создайте в классе ThisIsAClass метод под названием ThisIsAClass1, который содержит ошибку деления на ноль и как минимум две ветви, так что (1) можно создать тест набор, который обеспечивает 100% покрытие пути и не выявляет ошибку, и (2) каждый возможный набор тестов, который достигает 100% покрытия ветвей, выявляет ошибку.
Метод может иметь любую сигнатуру.
Если вы считаете, что невозможно создать метод, отвечающий обоим требованиям, то:
Создайте пустой метод.
Добавьте комментарий в (пустое) тело метода, который кратко, но убедительно объясняет, почему создание такого метода невозможно.
И наоборот, если вы смогли создать метод, создайте два тестовых класса JUnit следующим образом:
ThisIsAClassTestPC1 должен достичь 100% пути охват нестабильного метода1 и не выявлять в нем ошибку.
ThisIsAClassTestBC1 должен достичь 100 % покрытия ветки нестабильного метода1 и выявить ошибку в нем.
Подробнее здесь: https://stackoverflow.com/questions/787 ... h-coverage