Assert.assertEquals 没有正确比较字符串
Assert.assertEquals didn't compares String right way
我目前正在研究一个 udemy java 编程 class 并且正在努力练习。
这里是大师灵魂:
public class Bonbon {
public static void bonbonRechner(){
//Hier den Code der Main-Methode einfügen
String Jan = "Jan";
String Lisa = "Lisa";
String Tom = "Tom";
int Bonbons = 100;
int JanBonbon = 6;
int LisaBonbon = 11;
int TomBonbon = 8;
Bonbons = Bonbons - JanBonbon - LisaBonbon - TomBonbon;
System.out.println(Jan + ": " + JanBonbon + ", " + Lisa + ": " + LisaBonbon + ", "
+ Tom + ": " + TomBonbon + ", Restlichen Bonbons: " + Bonbons);
}
public static void main(String[] args) {
bonbonRechner();
}
}
它应该打印 Jan: 6, Lisa: 11, Tom: 8, Restlichen Bonbons:75
我这样配置 Evaluate.java:
import org.junit.Test;
import org.junit.Assert;
import com.udemy.ucp.*;
import com.udemy.ucp.IOHelper;
public class Evaluate {
Bonbon bw = new Bonbon();
IOHelper helper = new IOHelper();
@Test
public void testExercise() {
helper.resetStdOut();
bw.bonbonRechner();
Assert.assertEquals("Not right",
"Jan: 6, Lisa: 11, Tom: 8, Restlichen Bonbons: 75", helper.getOutput());
}
}
我的控制台是这样说的:
Console
Not right expected:<...stlichen Bonbons: 75[]> but was:<...stlichen Bonbons: 75[
Your output
Jan: 6, Lisa: 11, Tom: 8, Restlichen Bonbons: 75
]>
有什么想法可以解决输出中缺少 ]> 的问题吗?
提前致谢!
System.out.println
在您的文本后附加一个新行 \n
,这是比较的一部分,因为 StdOut 的所有内容都由您的 IOHelper 捕获,但您期望的字符串不包含新行。您可以使用 System.out.print
来避免这种情况。
我目前正在研究一个 udemy java 编程 class 并且正在努力练习。
这里是大师灵魂:
public class Bonbon {
public static void bonbonRechner(){
//Hier den Code der Main-Methode einfügen
String Jan = "Jan";
String Lisa = "Lisa";
String Tom = "Tom";
int Bonbons = 100;
int JanBonbon = 6;
int LisaBonbon = 11;
int TomBonbon = 8;
Bonbons = Bonbons - JanBonbon - LisaBonbon - TomBonbon;
System.out.println(Jan + ": " + JanBonbon + ", " + Lisa + ": " + LisaBonbon + ", "
+ Tom + ": " + TomBonbon + ", Restlichen Bonbons: " + Bonbons);
}
public static void main(String[] args) {
bonbonRechner();
}
}
它应该打印 Jan: 6, Lisa: 11, Tom: 8, Restlichen Bonbons:75
我这样配置 Evaluate.java:
import org.junit.Test;
import org.junit.Assert;
import com.udemy.ucp.*;
import com.udemy.ucp.IOHelper;
public class Evaluate {
Bonbon bw = new Bonbon();
IOHelper helper = new IOHelper();
@Test
public void testExercise() {
helper.resetStdOut();
bw.bonbonRechner();
Assert.assertEquals("Not right",
"Jan: 6, Lisa: 11, Tom: 8, Restlichen Bonbons: 75", helper.getOutput());
}
}
我的控制台是这样说的:
Console
Not right expected:<...stlichen Bonbons: 75[]> but was:<...stlichen Bonbons: 75[
Your output
Jan: 6, Lisa: 11, Tom: 8, Restlichen Bonbons: 75
]>
有什么想法可以解决输出中缺少 ]> 的问题吗?
提前致谢!
System.out.println
在您的文本后附加一个新行 \n
,这是比较的一部分,因为 StdOut 的所有内容都由您的 IOHelper 捕获,但您期望的字符串不包含新行。您可以使用 System.out.print
来避免这种情况。