java:抽象方法并用junit测试它们

iklwldmw  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(299)

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调用构造函数的解决方案。我在这里看不到什么?
任何帮助都将不胜感激!抱歉,错误的代码段类型。

thigvfpy

thigvfpy1#

多亏了评论才解决了
只需在构造函数中初始化teststring

public Class1(String classtext){
        this.mystring = classtext;
        teststring = "Teststring";
    }

在class1.java中,测试现在可以正常工作了
junit输出
进程已完成,退出代码为0

相关问题