我已经为我的一个方法创建了一个单元测试,我无法弄清楚为什么会出现这个错误。我是Java的新手,我知道当你传递的一个变量为null时会发生NullPointerException错误,但我不确定我的代码在哪里。任何帮助将不胜感激,谢谢!
public void testCreateProject() throws TrexException {
TrexProject project = new TrexProject();
String projectName = "CoolNewProject";
project.setTitle(projectName);
try {
final List<TrexProject> projects = this.getTrexProjectService().findAllProjects();
Assert.assertNotNull(projects);
final int count = projects.size();
project = this.getTrexProjectService().createProject("Project-" + UUID.randomUUID().toString());
Assert.assertNotNull(project);
final List<TrexProject> projects2 = this.getTrexProjectService().findAllProjects();
Assert.assertNotNull(projects2);
Assert.assertEquals(count + 1, projects2.size());
} finally {
if (project != null) {
this.getTrexProjectLifecycleService().deleteProject(project.getTrexProjectId());
}
}
}
答案 0 :(得分:1)
我看到你测试像
这样的东西Assert.assertNotNull(projects)
但是如果你要测试一切都不为空,你还应该测试其余部分,即
Assert.assertNotNull(this.getTrexProjectService())
Assert.assertNotNull(this.getTrexProjectLifecycleService())
Assert.assertNotNull(UUID)
Assert.assertNotNull(UUID.randomUUID())
此外,问题可能出在您正在调用的方法中,例如: findAllProjects()
等。
答案 1 :(得分:0)
我从您的评论中看到您已经确定错误发生在this.getTrexProjectLifecycleService()
行的主要问题。但是,由于它之前的行(即if (project != null)
),很明显项目不为空。所以问题必须是this.getTrexProjectLifecycleService()
为空。