我有一个JUnit测试用例来测试一个简单的类。基本上这个类只包含一个叫'sum'的方法,它返回两个数字的总和。要测试这是否正确,我使用以下方法:Assert.assertEquals(2, my_object.sum(1, 2));
结果显示在eclipse上的标签中,名为“Failure Trace”。该消息说:junit.framework.AssertionFailedError: expected:<2> but was:<3>
。是否有可能得到这个消息并把它放到一个String变量中?如何从JUnit assertEquals()方法获取输出并将其放入变量?
回答
从Java文档的assertEquals将
Asserts that two objects are equal. If they are not, an AssertionError without a message is thrown. If expected and actual are null, they are considered equal.
你必须赶上AssertionError
当你的条件失败。
试试这个代码:
@Test
public void myTest() throws Exception{
String assertionError = null;
try {
Assert.assertEquals(2,3);
}
catch (AssertionError ae) {
assertionError = ae.toString();
}
System.out.println(assertionError);
}
OUTPUT:
java.lang.AssertionError: expected:<2> but was:<3>
有关Asse田访问Java文档的详细信息:AssertionError和Assert
对不起,这是什么意思? JUnit测试的想法是允许**自动**执行。整个框架的基础是失败的测试用例抛出AssertionErrors;并且运行所有测试的框架捕获它们。当然,你可以自己去捕捉它们,但是如果你这样做......你可以走完全九码,并彻底抛弃所有的Junit测试。因为你只是渲染**毫无价值**。 – GhostCat
@Jägermeister你是完全正确的。捕获AssertionError没有意义。由于OP已经提出了这个具体问题(他的作业),我已经回答了。 – Unknown
我得到了那部分;我只是想知道是否有更深层的意义,我错过了。就像在家里工作一样;你会期望教师应该要求“合理”的事情要做;而不是要求学生以完全“破碎”的方式使用框架。 – GhostCat
assertEquals
是void
方法。你不能把结果放到变量中。但您可以通过try/catch
区块获得例外。
try{
assertEquals("foo", "foo1"); //will fail
} catch(AssertionError e){
String message = e.getMessage();
//do whatever you want with e
}
我试过了,但不起作用。事实上,当assertEquals失败时,这并不会成功。下一行在失败时不执行。 –
我的不好,修好了!问题是'AssertionError'没有扩展'Exception' bu''错误'。所以最好赶上@Unknown建议的'AssertionError'。 –
- 1. 如何从用户获取输入并将其放入矩阵?
- 2. 如何读取控制台的输出并将其放入变量中?
- 3. 如何从输入中获取值并将其用作jQuery变量?
- 4. 获取JSON数据并将其放入变量
- 5. 获取DCIM_PhysicalDiskView的PrimaryStatus并将其放入Powershell中的变量
- 6. 获取所选文本并将其放入变量
- 7. 如何从表单输入/输出并将其存储在JS变量中?
- 8. Bash脚本 - 获取系统输出并将其用作变量
- 9. 从管道捕获输出并将其存储在变量中
- 10. 我如何从Firebase获取数据并将其放入this.props - React
- 11. (javascript)从输入插入用户名称并将其放入对象变量
- 12. 如何获取范围输入的值并将其传递给PHP变量?
- 13. 如何在javascript中获取int变量以输入java方法
- 14. 从方法获取变量
- 15. 如何获取date输入的值并将其放入到javascript中的innerHTML中
- 16. 如何获取C中的字符输入并将其放入数组中?
- 17. 如何在Rails中捕获电子邮件的输出并将其放入变量
- 18. 从内部输入指令获取ng-model并将其放入指令
- 19. 无法将输出放入一个变量
- 20. 从param中删除散列(数组)并将其放入变量
- 21. 获取变量,并将它插入MKAnnotationView
- 22. 如何将PHP变量放入SQL查询的输出中
- 23. 从Python函数获取输出变量
- 24. 如何获得屏幕分辨率并将其放入PHP变量
- 25. 从输入号码获取变量值
- 26. 将输出插入变量
- 27. 如何获取单个图像并将其放入localStorage?
- 28. 如何获取本地时间并将其放入字符串
- 29. 如何获取按键并将其放入JavaScript数组中?
- 30. 获取会话变量,并将其设置为一个变量
你到底想干什么? – sisyphus
你为什么想这样做? –
因为我需要构建一个Web系统来评估使用JUnit测试用例作为作业的类,并且我需要将此消息显示给最终用户。 –