Итак, я начал использовать JMockit и JUnit для тестирования своего кода.
Я написал класс и хотел протестировать этот класс.Класс выглядит следующим образом -
public final class KingdomDAOImpl implements KingdomDAO {
private Map<KingdomType, Kingdom> kingdomEmblemMap;
@Inject
public KingdomDAOImpl(final Map<KingdomType, Kingdom> kingdomEmblemMap) {
this.kingdomEmblemMap = kingdomEmblemMap;
}
@Override
public Map<KingdomType, Kingdom> getKingdoms() {
return kingdomEmblemMap;
}
}
И мой тестовый класс выглядит следующим образом -
public class KingdomDAOTest {
@Injectable
private static Map<KingdomType, Kingdom> kingdomEmblemMap;
@Tested
private static KingdomDAOImpl kingdomDAO;
@BeforeClass
public static void beforeClass() {
kingdomEmblemMap = new HashMap<>();
}
@Test
public void getKingdomsTest() {
System.out.println("=========+> " + kingdomDAO);
final Map<KingdomType, Kingdom> actualKingdomEmblemMap = kingdomDAO.getKingdoms();
Assert.assertEquals(kingdomEmblemMap, actualKingdomEmblemMap);
}
}
Теперь проблема в том, что экземпляр kingdomDAO
это null
, что я не могу понять, почему.Из-за этого kindomDAO.getKingdoms()
выдает NullPointerException
.
Любые идеи о том, как действовать дальше?
РЕДАКТИРОВАТЬ: Я использовал версию JMockit 1.8
.Я попытался обновить до 1.45
и заменить аннотацию @Injectable
на @Tested
, но проблема все еще остается.