断言一个对象是一个特定的types
在JUnit中是否有可能断言一个对象是一个类的实例? 由于各种原因,我在我的testing中有一个对象,我想检查的types。 它是一种Object1还是一种Object2?
目前我有:
assertTrue(myObject instanceof Object1); assertTrue(myObject instanceof Object2);
这工作,但我想知道是否有一个更具performance力的方式做到这一点。
比如像这样的东西:
assertObjectIsClass(myObject, Object1);
我可以这样做:
assertEquals(myObject.class, Object1.getClass());
是否有一个特定的断言方法,允许我以更优雅,stream畅的方式testing一个对象的types?
你可以使用assertThat
方法和JUnit附带的Matchers。
看看这个链接 ,介绍一下JUnit Matchers。
例:
public class BaseClass { } public class SubClass extends BaseClass { }
testing:
import org.junit.Test; import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertThat; /** * @author maba, 2012-09-13 */ public class InstanceOfTest { @Test public void testInstanceOf() { SubClass subClass = new SubClass(); assertThat(subClass, instanceOf(BaseClass.class)); } }