如何解决尝试编写 Junit 测试,但失败了
这是我的代码:
Concatenate.java
package concatenate;
import java.util.Scanner;
public class Concatenate {
private static String firstWord;
private static String secondWord;
public Concatenate(String firstWord,String secondWord) {
Concatenate.firstWord = firstWord;
Concatenate.secondWord = secondWord;
}
public String getFirst() {
return firstWord;
}
public String getSecond() {
return secondWord;
}
public static Concatenate something() {
Scanner myObj = new Scanner(system.in);
System.out.println("Enter first word");
firstWord = myObj.nextLine();
// Scanner newObj = new Scanner(system.in);
System.out.println("Enter second word");
secondWord = myObj.nextLine();
return new Concatenate(firstWord,secondWord);
}
public static void main(String[] args) {
Concatenate result = something();
System.out.println(result.getFirst() + " " + result.getSecond());
}
}
ConcatenateTest.java
package concatenate;
import org.junit.Test;
import static org.junit.Assert.*;
public class ConcatenateTest {
public Concatenatetest() {
}
@Test
public void testMain() {
String firstWord = "Hello";
String secondWord = "world";
String expectedResult = "Hello world";
Concatenate testResult = new Concatenate(firstWord,secondWord);
assertEquals(expectedResult,testResult);
assertEquals(1,1);
}
}
但是当我运行测试时,它失败了,我得到...
预期
请指点一下?
顺便说一句,我试图将所有这些都复制到 Eclipse,但它抛出了一大堆额外的错误。如果有人能告诉我为什么那也会很棒。 https://i.imgur.com/iES6owx.jpg
TIA
解决方法
因为您将 String 与 Concatenate 对象进行比较。所以它不会匹配。
最好在 Concatenate 类中创建一个 concat 方法并断言该方法的输出
public String concat() {
return firstWord + " " + secondWord;}
比较
assertEquals(expectedResult,testResult.concat());
希望这能澄清您的问题
,测试失败,因为 expectedResult 是一个 String 而 testResult 是 Concatenate 的一个实例。它们不相等。
"Hello world".equals(testResult) == false
,
“我明白了,谢谢,但是请问有什么解决方案?因为当我尝试让我的 Concatenate 函数返回一个字符串时,我得到了缺少 return 语句的错误”
你是在说你的构造函数吗?如果是它不能有回报。 您可以覆盖 equals 方法然后更改您的测试@Override
public String toString() {
return firstWord +" "+secondWord;
}
assertEquals(expectedResult,testResult.toString());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。