Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用FEST assertThat(…)方法测试类对象之间的相等性?_Java_Junit4_Fest_Assertj - Fatal编程技术网

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

Java 如何使用FEST assertThat(…)方法测试类对象之间的相等性?,java,junit4,fest,assertj,Java,Junit4,Fest,Assertj,如何使用FESTassertThat(…)方法测试类对象是否相等 例如: import static org.fest.assertions.api.Assertions.assertThat; @Test public void test() throws Exception { assertThat(findClass()).isEqualTo(Integer.class); } private Class<?> findClass() { // logic

如何使用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;
}
导入静态org.fest.assertions.api.assertions.assertThat;
@试验
public void test()引发异常{
assertThat(findClass()).isEqualTo(Integer.class);
}
私有类findClass(){
//查找类对象的逻辑
返回字符串.class;
}

以上内容无法编译。
isEqualTo
方法有问题。我是否应该使用其他方法来测试类对象之间的相等性?

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

其次,使用AssertJ,这是开箱即用的。。。这为我汇编了:

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

private Class<?> findClass()
{
    return Integer.class;
}
//不相关的代码,然后
assertThat(findClass()).isEqualTo(Integer.class);
}
私有类findClass()
{
返回Integer.class;
}

那么,您可能还有另一个问题?

如果您使用的是assertJ,正确的方法是使用
isInstanceOf()
方法。如果可能,请始终使用更具体的assertJ匹配器。它们更具语义,并给出更好的错误结果

没问题;)请注意,由于
Class
“实例”是单例,因此可以使用
.isSameAs()
    assertThat(object).isInstanceOf(Foo.class);