Если я вас правильно понимаю, у вас есть какой-то фрагмент кода, который может не скомпилироваться, и вы хотите написать модульный тест, который не проходит, если код действительно не компилируется. Если это так, то вам не следует писать какие-либо модульные тесты. Вы должны понимать, что вы должны писать модульные тесты только для своего кода, а не кода, написанного кем-то другим.
Вы не указали язык программирования, поэтому я сделаю некоторый псевдокод. Допустим, вы пишете функцию для добавления двух чисел:
function add(a, b) {
return a + b;
}
Очень просто. Вы должны проверить это, например, выполняя тесты как ниже:
function testAdd() {
assertEquals(4, add(2, 2));
assertEquals(46, add(12, 34));
}
Однако вы должны не написать тест, который проверяет, нормально ли работает оператор +
. Это работа того, кто написал библиотеку, которая реализует, как действительно работает оператор +
.
Так что, если это так, не пишите никаких модульных тестов. Компиляция вашего кода - это работа вашего компилятора. Компилятор должен сообщить, что произошла ошибка компиляции надлежащим образом. Вы не должны проверять, правильно ли выполняет компилятор свою работу - это тестирование людей, которые пишут компилятор.