コンセプトを理解するために@DataJpaTestを使用せずに統合テストを生成しようとしています。 私はReflectionで、テスト中のサービスレイヤ内でThe Daoを取得または設定できないことに気付きました。だから、DaoがReflection APIを持ってアクセスしたとき、それはNullPointerExceptionを返します。私は、Java Reflection APIとSpring FrameworkのReflectionTestUtilsの両方をテストしました。ここでSpring autowiredパラメータでリフレクションが動作しない
UserService userService;
@Before
public void setUp(){
userService = new UserServiceImpl();
UserDao userDao = (UserDao) ReflectionTestUtils.getField(userService, "userDao");
userDao.deleteAll(); //HERE RETURNS A NULLPOINTER
...
}
がUserServiceImpl.javaに私は、Springフレームワークの@Autowired注釈を使用してJpaRepositoryを拡張UserDao(インタフェースを注入することを検討するコードの抜粋です。私はダオは(春のフレームワークによって実装にアクセスするにはどうすればよい
)私のサービスからの感謝
完全なスタックトレースを配置できますか。他の内部呼び出しでNullPointerをスローしていますか? – pvpkiran
RestController内のuserDao属性がnullなので、Reflectionで取得しようとするとnullオブジェクトが返されます。私は統合テストから@Autowired UserDaoインターフェースにアクセスする方法を知らない。 –
あなたは手動で 'UserServiceImpl'を作成しています。あなたはそれをオートワイヤーして、春にオブジェクトを作成させるべきです。それから、すべての依存関係が設定されます。 –