春季mvc你好!Junit平台v.5.8.1 java出现错误。lang.NoSuchMethodError:org。朱尼特。站台平民util。注释。芬丹符号
我遇到了以下代码的问题:
@ExtendWith(MockitoExtension.class)
class ApiRestControllerTest {
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
private MockMvc mockMvc;
@InjectMocks
private ApiRestController apiRestController;
@BeforeEach
void setUp() {
mockMvc = MockMvcBuilders
.standaloneSetup(apiRestController)
.build();
}
@Test
void shouldReturnsVersion() throws Exception {
mockMvc.perform(get("/api/v1/version"))
.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON))
.andExpect(content().json(OBJECT_MAPPER.writeValueAsString(new VersionResponse(VERSION))));
}
}
我有个错误: 原因:java。lang.NoSuchMethodError:org。朱尼特。站台平民util。注释。findAnnotation(Ljava/lang/Class;Ljava/lang/Class;Z)Ljava/util/Optional; 在org。朱尼特。木星发动机描述符。DisplayNameUtils。getDisplayNameGenerator(DisplayNameUtils.java:110) 在org。朱尼特。木星发动机描述符。DisplayNameUtils。lambda$createDisplayNameSupplierForClass$2(DisplayNameUtils.java:98) 在org。朱尼特。木星发动机描述符。DisplayNameUtils。determineDisplayName(DisplayNameUtils.java:88) 在org。朱尼特。木星发动机描述符。JupiterTestDescriptor。(JupiterTestDescriptor.java:69) 在org。朱尼特。木星发动机描述符。ClassBasedTestDescriptor。(ClassBasedTestDescriptor.java:96) 在org。朱尼特。木星发动机描述符。ClassTestDescriptor。(ClassTestDescriptor.java:51) 在org。朱尼特。木星发动机发现ClassSelector或Resolver。newClassTestDescriptor(ClassSelectorResolver.java:119
我使用JUnit5.8.1,但对于较低版本,如5.7.2,它运行良好
谢谢你的帮助
# 1 楼答案
JUnit平台1.8中引入了缺少的方法
org.junit.platform.commons.util.AnnotationUtils.findAnnotation(Class<?>, Class<A>, boolean)
因此,您需要确保升级到
junit-platform-commons
1.8.1使用
junit-bom
将有助于简化此类升级,以确保使用所有JUnit 5工件的兼容版本