java初学者:
因此,我实现了一个小的junit测试,通过一个接口来理解java中的方法抽象。
然而,在方法和类之间传递值还没有完全起作用。
我的测试集是一个类、一个接口和一个junit类
实施
--代码测试.java
package testing;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class Codetest {
Myinterface inter1 = new Class1("testing... ");
@Test
public void testPrintme(){
assertEquals("testing... Teststring", inter1.printme());
inter1.changeText("now its changed... ");
assertEquals("now its changed... Teststring", inter1.printme());
}
}
--class1.java类
package testing;
public class Class1 implements Myinterface {
private String mystring;
private String teststring;
public Class1(String classtext){
this.mystring = classtext;
}
public String printme(){
//changeText(mystring);
return mystring + teststring;
}
public void changeText(String changetext){
teststring = "Teststring";
this.teststring = teststring;
this.mystring = changetext;
}
}
--我的接口.java
package testing;
public interface Myinterface {
// abstract methods
public String printme();
public void changeText(String changetext);
}
输出
org.junit.comparisonfailure比较失败:
预期:测试。。。测试字符串
实际:测试。。。无效的
teststring从未被赋值,因为我在测试的这一部分中没有调用changetext方法
我试过的
只需在class1.java中的printme()内调用changetext(mystring)(is commented)就可以了,但是我想我可以不用它,我正在寻找一个从codetest调用构造函数的解决方案。我在这里看不到什么?
任何帮助都将不胜感激!抱歉,错误的代码段类型。
1条答案
按热度按时间thigvfpy1#
多亏了评论才解决了
只需在构造函数中初始化teststring
在class1.java中,测试现在可以正常工作了
junit输出
进程已完成,退出代码为0