[TIL]8月18日
UserControllerTestが急に動かなくなった…!
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.itda.apiserver.jwt.TokenProvider' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
エラーログが表示され、TokenProviderは空に登録されていません.
以下に示すように、@WebMvcTestを使用してテストを行います.
@WebMvcTest(UserController.class)
public class UserControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private UserService userService;
@Mock
private User user;
private ObjectMapper objectMapper = new ObjectMapper();
@Test
@DisplayName("회원 가입 기능 테스트")
void signUp() throws Exception {
...
}
}
公式文書を見ました。@WebMvcTestを使用してテストを行う場合、@Componentはスキャンされないため、問題が発生する可能性があります.構成部品を登録するには、@Import宣言を使用して登録するクラスを指定します.
@WebMvcTest(UserController.class)
@Import(value = {TokenProvider.class, TokenExtractor.class})
public class UserControllerTest {
...
}
Outh実装、RestTemplateとWebクライアント?
RestTemplateはSpringバージョン5からメンテナンスモードに変更され、今後廃棄されます.
SpringはWebクライアントの使用も推奨します.
非モチベーションをサポートします.→非同期動作についてはさらに学ぶ必要がある.(参照:https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html)
今日やったこと
Reference
この問題について([TIL]8月18日), 我々は、より多くの情報をここで見つけました https://velog.io/@yeon/TIL-8월-18일テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol