如何理解AssertThat(JUnit)?

问题描述 投票:0回答:3

为了理解 JUnit,我编写了以下代码。我特别对assertThat()方法感兴趣。

package test;

public class Equals {

    private String x ; 

    public Equals(String a){

        this.x = a; 
    }

    public Equals equals(Equals x ){
            return x; 
    }
}

然后我创建一个测试类来测试 equals() 方法。

package test;


import static org.junit.Assert.*;

import org.hamcrest.Matcher;
import org.junit.Test;

public class EqualsTest {

    @Test
    public void testEquals() {
        Equals t1 = new Equals("test");

        assertThat(t1, t1.equals("test"));
    }


}

Eclipse 用红色强调了assertThat 并建议:创建方法assertThat(Equals, boolean)。

enter image description here

其他断言方法,如assertEquals()等都非常简单,但这个对我来说不太直观。我不明白这个。请帮忙。

致以最诚挚的问候,

eclipse junit assert
3个回答
1
投票

此方法必须使用一些匹配器,而不是布尔值。

例如,您可以使用

is
匹配器来达到您的目的:

assertThat("this string", is("this string"));

看看这个:http://tutorials.jenkov.com/java-unit-testing/matchers.html


0
投票

assertThat
是 Hamcrest 断言库的一部分。请查看 Hamcrest 的网站:http://hamcrest.org/JavaHamcrest/


0
投票

JUnit 的最新版本现在包含 hamcrest。

事实上, org.junit.Assert.assertThat 的方法签名是

public static <T> void assertThat(T actual,
                              org.hamcrest.Matcher<T> matcher)

你可以用这个方法,

assertThat(t1, equalTo("test"));
© www.soinside.com 2019 - 2024. All rights reserved.