我知道String在比较的时候最好使用方法,StringA.equals(StringB);
所以想问一下Junit是不是也不能直接assertEquals(StringA,StringB),而必须采用assertEquals(true,StringB.equals(StringA));的方法?
assertEquals(String,String)能否比较成功没有问题?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
小P聊技术 2021-06-01 10:08关注assertEquals 和 assertTrue 区别
相同之处:都能判断两个值是否相等
assertTrue 如果为true,则运行success,反之Failure
assertEquals 如果预期值与真实值相等,则运行success,反之Failure不同之处:
assertEquals 运行Failure会有错误提示,提示预期值是xxx,而实际值是xxx。容易调式
assertTrue 没有错误提示代码块
App.java
package com.yubai.Test; public class App { public String method(){ return this.getClass().getName(); } }AppTest.java
package com.yubai.Test; import static org.junit.Assert.*;//必须是static import org.junit.Test; public class AppTest { App app = new App(); @Test public void testBaseClass(){ assertTrue(app.method().equals("com.yubai.Test.App")); } @Test public void testmethod(){ assertEquals("com.yubai.Test.App", app.method()); } }运行成功结果
assertEquals 运行失败后的错误提示
org.junit.ComparisonFailure: expected:<…ven.TestMaven_test.A[]> but was:<…ven.TestMaven_test.A[pp]>
assertTrue 运行失败后的错误提示
总结
两种方法都可以判断,一般建议使用assertEquals 容易调试
解决评论 打赏 举报无用 1