如何使用FEST assertThat(...)方法测试类对象之间的相等性?

时间:2014-05-11 20:11:14

标签: java junit4 fest assertj

如何使用FEST assertThat(...)方法测试类对象是否相等?

示例:

import static org.fest.assertions.api.Assertions.assertThat; 

@Test
public void test() throws Exception {
    assertThat(findClass()).isEqualTo(Integer.class);
}

private Class<?> findClass() {
    // logic for finding a class object
    return String.class;
}

以上不编译。 isEqualTo方法抱怨。我应该使用其他方法来测试类对象之间的相等性吗?

2 个答案:

答案 0 :(得分:1)

首先你应该使用AssertJ; FEST已经过时了。但由于AssertJ具有类似的语法,因此过渡很容易。

第二,好吧,使用AssertJ,这开箱即用......这为我编译:

// irrelevant code, then
    assertThat(findClass()).isEqualTo(Integer.class);
}

private Class<?> findClass()
{
    return Integer.class;
}

那么,也许你还有其他问题?

答案 1 :(得分:1)

如果您正在使用assertJ,正确的方法是使用isInstanceOf()方法。在可能的情况下,始终使用更具体的assertJ匹配器。它们更具语义性,并提供更好的错误结果。

http://joel-costigliola.github.io/assertj/core/api/org/assertj/core/api/Assert.html#isInstanceOf(java.lang.Class)

    assertThat(object).isInstanceOf(Foo.class);