JUnit在Hamcrest中断言#s assertSame等效

时间:2016-07-08 11:47:01

标签: java unit-testing junit instance hamcrest

在JUnit' s Assert#assertSame的hamcrest库中是否有等价物?如果是,那是什么?目前我只能想到Hamcrest#sameInstance,但我不太确定这种方法是正确的。

2 个答案:

答案 0 :(得分:4)

提供此功能的基础匹配器是org.hamcrest.core.IsSame。它有方便的方法可以在org.hamcrest.Matchers#sameInstance(如你所提到)和org.hamcrest.CoreMatchers#sameInstance中隐藏它。

无论您使用哪个主要是偏好问题。就个人而言,我更喜欢从CoreMatchers静态导入,只是因为它“更苗条”:

import static org.hamcrest.CoreMatchers.sameInstance;
import static org.junit.Assert.assertThat;

import org.junit.Test;

public class SomeTest {
    @Test
    public void testSomething() {
        Object o1 = new Object();
        Object o2 = o1;

        assertThat(o1, sameInstance(o2));
    }
}

答案 1 :(得分:1)

您想转向

assertThat(actual, isSame(expected))

这里。