猿问

使用 jUnit 测试接口

我有一个接口和一个实现它的类。我 @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());

    }   

}


慕斯709654
浏览 159回答 1
1回答

侃侃尔雅

好吧,根据您发布的代码,您没有创建MyCustomString对象。这可能是你的NullPointerException.尝试mycustomstring = new MyCustomString()在您的 setString 方法上方添加,如下所示:public class MyCustomStringTest {&nbsp;&nbsp; &nbsp; private MyCustomStringInterface mycustomstring;&nbsp; &nbsp; @Test&nbsp; &nbsp; public void testCountNumbers1() {&nbsp; &nbsp; mycustomstring = new MyCustomString();&nbsp; &nbsp; &nbsp; &nbsp;mycustomstring.setString("th1s strin8 shou1d hav3 numb3rs, righ7?");&nbsp; &nbsp; &nbsp; &nbsp;assertEquals(6, mycustomstring.countNumbers());&nbsp; &nbsp; }&nbsp; &nbsp;}
随时随地看视频慕课网APP

相关分类

Java
我要回答