我正在準備Guice的演示文稿,我計劃通過執行單元測試演示Guice的(正確)行爲。在下面的測試情況下,我想,以確保正確類型的注射Guice - 測試噴射器的正確行爲 - getClass()vs instanceof
@Test
public void shouldInjectCorrectDependencies() {
Injector injector = Guice.createInjector(new ModuleImpl());
House house = injector.getInstance(House.class);
Assert.assertTrue(house.door().getClass() == (WoodenDoor.class));
}
現在,我不知道哪種方法會更好:
- 使用的getClass()來檢查的具體類
- 使用instanceof來檢查一個類型(和子類型)
我認爲這將需要``WoodenDoor.class.isAssignableFrom或更好的`WoodenDoor.class.isInstance((house.door()的getClass())。 house.door())`...但由於你知道你在編譯時感興趣的類型,`house.door()instanceof WoodenDoor`對我來說似乎最好。 – ColinD 2011-12-14 16:54:26