Java 在Junit测试中打印出方法的输出
所以对于赋值,我们的任务是构建通用函数来处理对象。在这种情况下是两个不同的卡片组。一个是你的标准52扑克牌组,另一个是我们精选的扑克牌组。我选择了《星际迷航》的下一代卡片。(免责声明,我对junit测试知之甚少。我的课程中从未涉及过它,而我所知的一点来自实验)无论如何,我有一个方法可以处理X张卡。我需要帮助,弄清楚如何在junit测试中打印出方法的输出。下面是我的junit测试代码和方法Java 在Junit测试中打印出方法的输出,java,junit,Java,Junit,所以对于赋值,我们的任务是构建通用函数来处理对象。在这种情况下是两个不同的卡片组。一个是你的标准52扑克牌组,另一个是我们精选的扑克牌组。我选择了《星际迷航》的下一代卡片。(免责声明,我对junit测试知之甚少。我的课程中从未涉及过它,而我所知的一点来自实验)无论如何,我有一个方法可以处理X张卡。我需要帮助,弄清楚如何在junit测试中打印出方法的输出。下面是我的junit测试代码和方法 '''public void test_cardPile_dealNum() { aceOf
'''public void test_cardPile_dealNum() {
aceOfHearts = new StandardCard ("Hearts", "Ace");
aceOfDiamonds = new StandardCard ("Montrial", "Ace");
aceOfClubs = new StandardCard("Clubs", "Ace");
fedCaptain = new starTrekCards("Federation", "Jean Luc Picard");
fedFirstOff = new starTrekCards("Federation","Willian Riker");
fedDoctor = new starTrekCards("Federation", "Beverly Crusher");
fedCounciler = new starTrekCards("Federation","Diana Troy");
contArse = new starTrekCards ("Continuum", "Q");
romCommander = new starTrekCards("Romulan Star Empire", "Commander Sela");
romSupport = new starTrekCards ("Romulan Star Empire", "Kimara Cretak");
klingLeader = new starTrekCards ("Klingon Empire", "Chancelor Garon");
int number = 3;
CardPile test3 =new CardPile ();
LinkedStack Holder;
test3.add(aceOfHearts);
test3.add(aceOfDiamonds);
test3.add(aceOfClubs);
test3.add(fedCaptain);
test3.add(fedFirstOff);
test3.add(fedDoctor);
test3.add(fedCounciler);
test3.add(contArse);
test3.add(romCommander);
test3.add(romSupport);
test3.add(klingLeader);
Holder = test3.dealNumb(3);
System.out.println(Holder.toString());
}''''
还有我的方法
'''
public LinkedStack dealNumb(整数)
{
如果(!card.isEmpty()){
LinkedStack cardTwo=新LinkedStack();
for(int i=0;i
提前感谢有句老话值得重复: 任何依赖人的可靠性的东西都是天生不可靠的 每个人都会犯错——你,我,每个人。当您运行上面的测试时,您依赖于您的人的可靠性来发现任何与预期不同的输出。这是不可靠的,bug会通过的(更不用说对你来说痛苦的无聊!) 单元测试(比如JUnit)的强大之处在于它们是自动化的。在业务中,它们通常在无人参与的情况下运行,内置于构建过程中,每当有人提交某段代码时,构建过程会在后台自动运行 因此,测试不是为了显示结果供人检查,而是测试本身检查结果,通常通过“Assert”语句。您会发现Junit中有一些(“AssertThat”、“AssertEquals”等),Hamcrest也很有用(请参阅) 因此,你要做的不是你的
println
,而是断言你已经得到了你想要的三张卡片,并且这些卡片不再在你的卡片堆中-例如:
// nb variable names like "holder" should start with lower-case
AssertThat(holder, is(equalTo(List.of(romCommander, romSupport, klingLeader))));
AssertThat(test3.size(), is(equalTo(8))));
AssertThat(test3.pop(), is(equalTo(contArse))));
(顺便说一句,是(equalTo(List.of
可能不适用于LinkedStack的任何实现,但希望您能理解:))
此外,就个人而言,我总是更喜欢AssertThat
而不是AssertEquals
,因为它更具可读性,并且避免了人们编写类似以下内容的常见错误:
AssertEquals(test3.size(), 3);
这是错误的方法!预期结果应该排在第一位,因此应该是:
AssertEquals(3, test3.size());
…但最好还是坚持使用
断言,即
打印结果的目的是什么?这是为了显示方法的有效性,
AssertEquals(3, test3.size());