hamcrestで何度かひっかかったので、覚え書く。
@Test public void can_load_string_class() { Class< ? > klass = Reflection.loadClass( "java.lang.String" ); assertThat( klass , is( String.class ) ); } // テスト失敗: // Expected: is an instance of java.lang.String // got: <class java.lang.String>
うまくいかないのは、isがClass型の引数に対してオーバーロードされていて、「そのクラスのインスタンスかどうか」を判定するからだ。代わりにequalToかsameInstanceを使えばよい。
@Test public void can_load_string_class() { Class< ? > klass = Reflection.loadClass( "java.lang.String" ); assertThat( klass , equalTo( (Class) String.class ) ); }