Skyrious 2021-05-31 20:20 采纳率: 0%
浏览 125

assertEquals(String,String)能否比较成功没有问题?

我知道String在比较的时候最好使用方法,StringA.equals(StringB);
所以想问一下Junit是不是也不能直接assertEquals(StringA,StringB),而必须采用assertEquals(true,StringB.equals(StringA));的方法?

  • 写回答

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 容易调试

    评论

报告相同问题?