我有一个接口和一个实现它的类。我 @Override 该方法,我想使用 JUnit4 对其进行测试。我不知道我的方法是否有错误,或者我的测试课是否做错了什么。拥有接口本身的实例是否正确,或者我应该将其设为实现接口的 myCustomString 类的实例。如果有人能解释这些对象是如何相互调用的,那就太棒了。我的 JUnit 测试返回一个空指针异常。public interface MyCustomStringInterface { int countNumbers();}public class MyCustomString implements MyCustomStringInterface { private String string; @Override public int countNumbers() { while (string.length() != 0 ) { int count = 0; for (int i = 0; i < string.length(); i++) { if(Character.isDigit(string.charAt(i))) count++; } return count; } return 0;}public class MyCustomStringTest { private MyCustomStringInterface mycustomstring; @Test public void testCountNumbers1() { mycustomstring.setString("th1s strin8 shou1d hav3 numb3rs, righ7?"); assertEquals(6, mycustomstring.countNumbers()); } }
1 回答
侃侃尔雅
TA贡献1801条经验 获得超16个赞
好吧,根据您发布的代码,您没有创建MyCustomString对象。这可能是你的NullPointerException.
尝试mycustomstring = new MyCustomString()在您的 setString 方法上方添加,如下所示:
public class MyCustomStringTest {
private MyCustomStringInterface mycustomstring;
@Test
public void testCountNumbers1() {
mycustomstring = new MyCustomString();
mycustomstring.setString("th1s strin8 shou1d hav3 numb3rs, righ7?");
assertEquals(6, mycustomstring.countNumbers());
}
}
添加回答
举报
0/150
提交
取消