У меня есть следующий тестовый код для класса:
/**
* Test Class
*/
public class GeneratorTestTest {
private Generator generator;
private static BufferedImage testImage;
private BufferedImage rotatedImageTestResult;
@Before
public void setUp() throws Exception {
generator = new Generator(null, 0);
File inputFile = new File("src/test/resource/picture.jpg");
testImage = ImageIO.read(inputFile);
}
/**
* Test method
*/
@Test
public void testRotateImageRotateImage() {
//Line 39
rotatedImageTestResult = generator.rotateImage(testImage, 0);
assertTrue(imageEquals(testImage, rotatedImageTestResult));
}
Я получаю NullPointerException
в тестовом методе, когда пытаюсь его запустить. Как пройти тест Junit?
Вот полный журнал исключения:
line 39 is "rotatedImageTestResult = generator.rotateImage(testImage, 0);
Если вы можете включить трассировку стека, обычно она будет включать несколько файлов, вызвавших сбой. Поскольку исключение нулевого указателя, вероятно, происходит в методе "rotateImage", нам, вероятно, понадобятся номера строк, в которых упоминается файл генератора.
ваш setUp, вероятно, еще не запущен. Вам необходимо, чтобы он был помечен как статический.
setUp не должен быть статическим: junit.sourceforge.net/javadoc/org/junit/Before.html
rotatedImageTestResult = generator.rotateImage(testImage, 0);
В этой строке кода либо "generator" имеет значение null, либо некоторый вспомогательный объект в вашем генераторе имеет значение null, поэтому сам метод "rotateImage" генерирует исключение нулевого указателя.
Или, что более вероятно, OP ошибается в том, какая строка 39.
Вам также необходимо включить трассировку стека из исключения, чтобы мы могли видеть, что где происходит исключение.