我有一个带有main方法的标准测试类和一个JUnit类,我通过测试驱动开发编写联系人目录时使用它来进行测试。我需要使用诸如assertEquals和amp;之类的方法。 assertTrue。因为我之前从未使用它们,所以我在标准测试类中编写了一个简单的测试,它们在预期时返回True并在预期时抛出异常。
然后我进入了我的JUnit测试类,编写了在标准测试类中传递的相同测试并运行了JUnit测试类。测试失败,出现以下错误:
Test[Method Name] failed with exception [null]
我使用的确切代码如下:
assertEquals("NameImExpectingToFind",obj.searchMethod("nameImSearchingFor").get(0).getName());
我一直坚持这个问题几个小时。它没有意义,它将传递给标准测试类,但不会传递给JUnit测试类。
提前感谢您的帮助!
Test class:
AddressBook main = new AddressBook();
Entry Will = new Entry("Will", "Blah",
"Blah, blah, blah", "TF4 3HS", "077774451",
"01/02/93");
Entry Ben = new Entry("Ben", "Blah",
"Blah, blah, blah", "TF4 3HS", "077774451",
"01/02/93");
main.addEntry(Will);
main.addEntry(Ben);
//assertEquals("Ben",main.cSearchFirst("Ben").get(0).getfName());
System.out.println("Ben" == main.cSearchFirst("Ben").get(0).getfName());
返回True。
JUnit Test class:
AddressBook main = new AddressBook();
Entry Will = new Entry("Will", "Blah",
"Blah, blah, blah", "TF4 3HS", "077774451",
"01/02/93");
Entry Ben = new Entry("Ben", "Blah",
"Blah, blah, blah", "TF4 3HS", "077774451",
"01/02/93");
main.addEntry(Will);
main.addEntry(Ben);
assertEquals("Ben",main.cSearchFirst("Ben").get(0).getfName());
//System.out.println("Ben" == main.cSearchFirst("Ben").get(0).getfName());
返回测试[方法名称]失败,异常为[null]。
答案 0 :(得分:0)
在测试之前看起来你有一个空指针
List<Entry> entries = main.cSearchFirst("Ben");//check for null here, and size
Entry e = entries.get(0); //again check null here, examine properties in debugger
String s = e.getfName();
在那里打一个调试器,然后看看抛出null的位置。
编辑:如果您期望null,我还建议对那里的空值进行检查,否则尝试/ catch null异常并使测试失败。