Ich versuche einen Integrationstest zu generieren, ohne @DataJpaTest zu verwenden, um die Konzepte besser zu verstehen. Mir ist aufgefallen, dass ich mit Reflection nicht in der Lage bin, das Dao innerhalb meiner zu testenden Dienstschicht zu bekommen oder einzustellen. Wenn es darum geht, auf das Dao zuzugreifen, das mit der Reflection-API erhalten wurde, gibt es eine NullPointerException zurück. Ich habe Java Reflection API und ReflectionTestUtils von Spring Framework getestet. Hier ist der Code-SnippetReflection funktioniert nicht für Spring autowired Parameter
UserService userService;
@Before
public void setUp(){
userService = new UserServiceImpl();
UserDao userDao = (UserDao) ReflectionTestUtils.getField(userService, "userDao");
userDao.deleteAll(); //HERE RETURNS A NULLPOINTER
...
}
dass Betrachten in UserServiceImpl.java ich UserDao (Interface injizieren, die JpaRepository mit @Autowired Annotation von Spring-Framework erweitert.
Wie kann ich das Dao Zugriff (durch Spring-Framework implementiert ?!) von meinem Service dank
können Sie den vollen Stack-Trace setzen. ist userDao null oder es wirft NullPointer in einem anderen internen Anruf? – pvpkiran
UserDao-Attribut in RestController ist Null, wenn ich versuche, es mit Reflection zu bekommen, bekomme ich ein Null-Objekt. Ich weiß nicht, wie ich von meinen Integrationstests auf eine @Autowired UserDao-Schnittstelle zugreifen kann. –
Sie erstellen manuell das 'UserServiceImpl'. Sie sollten es autowire und lassen Frühling das Objekt erstellen. Dann wird es alle Abhängigkeiten auffüllen. –