java:抽象方法并使用JUnit测试进行测试

java:抽象方法并使用JUnit测试进行测试,java,junit,Java,Junit,这里是java初学者: 因此,我实现了一个小型JUnit测试,通过一个 接口。 然而,在方法和类之间传递值还没有完全起作用。 我的测试集是一个类、一个接口和一个JUnit类 实施 --Codetest.java 封装测试; 导入org.junit.Test; 导入静态org.junit.Assert.assertEquals; 公共类代码测试{ Myinterface inter1=新类别1(“测试…”); @试验 public void testPrintme(){ assertEqua

这里是java初学者:
因此,我实现了一个小型JUnit测试,通过一个 接口。
然而,在方法和类之间传递值还没有完全起作用。
我的测试集是一个类、一个接口和一个JUnit类

  • 实施
    --Codetest.java
封装测试;
导入org.junit.Test;
导入静态org.junit.Assert.assertEquals;
公共类代码测试{
Myinterface inter1=新类别1(“测试…”);
@试验
public void testPrintme(){
assertEquals(“测试…测试字符串”,inter1.printme());
inter1.changeText(“现在它已更改…”);
assertEquals(“现在它已更改…Teststring”,inter1.printme());
}

}
由于这些评论而得以解决
只需在构造函数中初始化teststring

public Class1(String classtext){
        this.mystring = classtext;
        teststring = "Teststring";
    }  
在Class1.java中,测试现在运行良好

  • junit输出
    进程已完成,退出代码为0

你说得对,我现在已经纠正了它为什么不在构造函数中初始化
teststring
?为什么将
“Teststring”
分配给
Teststring
,然后再分配给
this.Teststring
?为什么
“Teststring”
不是常量,因为它只接受一个值?
返回mystring+Teststring->
teststring
在第一次调用期间为
null
。因此,这些方法返回
测试。。。空
。您的单元测试似乎工作得很好,因为您没有预料到这一点,并且认为它的行为会有所不同。单元测试准确地向您显示了假设错误的位置以及代码中的错误所在。@Polygenme感谢您的评论,我理解测试输出,但我还无法在第一次调用时将teststring的值传递给“changeText”,然后传递给“printme”方法,在不调用“printme”中的“changeText”的情况下,我将为@JustAnotherDeveloper重复在构造函数中初始化testString。并最终确定。不需要在其他任何地方初始化它。