0

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

例子:

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方法抱怨。我应该使用其他方法来测试类对象之间的相等性吗?

4

2 回答 2

1

首先你应该使用AssertJ;这个包已经过时了 FEST。但由于 AssertJ 共享类似的语法,因此转换将很容易。

其次,好吧,使用 AssertJ,这是开箱即用的......这为我编译:

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

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

那么,也许你还有另一个问题?

于 2014-05-11T20:15:01.903 回答
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);
于 2015-01-08T18:04:27.463 回答