在JUnit中是否可以断言一个对象是一个类的实例?由于各种原因,我在测试中有一个要检查其类型的对象。它是Object1还是Object2?
目前我有:
assertTrue(myObject instanceof Object1);
assertTrue(myObject instanceof Object2);
这行得通,但我想知道是否有一种更具表现力的方式来做到这一点。
例如:
assertObjectIsClass(myObject, Object1);
我可以这样做:
assertEquals(myObject.class, Object1.getClass());
有没有一种特定的assert方法,可以让我以更优雅,更流畅的方式测试对象的类型?
@ammoQ非常好。我没想到子类。感谢您的clarifaction
—
RNJ
正如maba指出的那样,请考虑使用Hamcrest。这不仅仅是为了使您有更好的工作测试。Hamcrest还提供了比标准更好的故障记录功能
—
约翰·B
assertTrue
。assertTrue
只会说expected true got false
,哈姆雷斯特会说expected instanced of XYZ, got instance of ABC
assertTrue(myObject instanceof Object1);
和assertEquals(myObject.class, Object1.getClass());
实际上是不同的测试?第一个接受myObject是的子类的实例Object1
,第二个不接受。