私は春を使用してJavaで小さなアプリケーションを開発していますので、私は、このサービスがあります。私は、テストを実行したときに、私はこの例外を取得するのはなぜ@PostConstructメソッドのNULLポインタ例外?
@RunWith(MockitoJUnitRunner.class)
public class AccountServiceTest {
@InjectMocks
private AccountService accountService = new AccountService();
@Mock
private AccountRepository accountRepositoryMock;
@Test
public void shouldInitializeWithTwoDemoUsers() throws IOException {
// act
accountService.initialize();
// assert
verify(accountRepositoryMock, times(2)).save(any(Account.class));
}
}
:
public class AccountService implements UserDetailsService {
@Autowired
private AccountRepository accountRepository;
@Autowired
private BlogRepository blogRepository;
@Autowired
private ImageService imageService;
@PostConstruct
protected void initialize() throws IOException {
Account user = new Account("user", "demo", "ROLE_USER");
save(user);
Blog userBlog = new Blog("userBlog", true, user);
userBlog.setAvatar(imageService.createBlogAvatar(userBlog.getName()));
blogRepository.save(userBlog);
save(new Account("admin", "admin", "ROLE_ADMIN"));
}
// More methods
}
そして、このテストを?
shouldInitializeWithTwoDemoUsers(es.udc.fi.dc.fd.account.AccountServiceTest) Time elapsed: 0.016 sec <<< ERROR!
java.lang.NullPointerException: null
at es.udc.fi.dc.fd.account.AccountService.initialize(AccountService.java:45)
at es.udc.fi.dc.fd.account.AccountServiceTest.shouldInitializeWithTwoDemoUsers(AccountServiceTest.java:42)
@PostConstruct
注釈を使用すると、すべての豆が正しく注入されているはずですか?
NullPointerExceptionがアノテーションから来ていますか?その機能の中の何かからスローされる可能性があります。 – Matt1776
@ Matt1776私が例外を受けている行を削除した場合、この行にヌルポインタがあります: 'blogRepository.save(userBlog);'。私はuserBlogがnullであり、そうでないかどうかをテストします。だから私は今、非常に混乱しています... –
ここに入れたコードの一部ではないエラーは45行目で起こっています。その部分を貼り付けることはできますか? –