SpringBootユニットテストサービス、daoおよびその他のnullポインタ例外
ビジネスコードが完了した後、通常はローカルユニットテストが実行され、次にオンラインテストが実行されますが、ユニットテスト中に、合格@Autowried
または@Resource
注入されたBeanはSpringのIoCコンテナによって作成されるため作成されず、SpringBootは次の場合は開始されません。これらのBeanは作成される可能性があるため、nullポインタ例外が報告されます。
解決
次の2つのアノテーションをテストクラスに追加します
1. @RunWith(SpringRunner.class)
2. @SpringBootTest(classes = UserMainApplication.class)
その中にUserMainApplication
は、SpringBootプロジェクト全体のスタートアップクラスがあります
ユニットテストコードは次のとおりです。
@SpringBootTest(classes = UserMainApplication.class)
@RunWith(SpringRunner.class)
public class UserServiceImplTest {
@Resource
private UserService userService;
@Test
public void testDelete() {
userService.delete(3);
}
}
このようにして、ユニットテスト中にnullポインタ例外が報告されなくなります。