无法弄清楚为什么我收到java.lang.NullPointerException错误?

时间:2013-06-13 16:40:13

标签: java eclipse unit-testing nullpointerexception

我已经为我的一个方法创建了一个单元测试,我无法弄清楚为什么会出现这个错误。我是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());
  }
}
}

2 个答案:

答案 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()为空。