有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

春季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) 个答案

  1. # 1 楼答案

    JUnit平台1.8中引入了缺少的方法org.junit.platform.commons.util.AnnotationUtils.findAnnotation(Class<?>, Class<A>, boolean)

    因此,您需要确保升级到junit-platform-commons1.8.1

    使用junit-bom将有助于简化此类升级,以确保使用所有JUnit 5工件的兼容版本