原创

IntelliJ 中 SpringExtension.java:381 处的 java.lang.AbstractMethodError

温馨提示:
本文最后更新于 2024年04月12日,已超过 48 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

i have tried to run some tests for my spring boot application that i`m currently working on in Java. I keep getting an 'AbstractMethodError' and i'm not entirely sure what has been causing it.

@SpringBootTest
@AutoConfigureMockMvc
public class LandingPageTest {
    static Playwright playwright;
    static Browser browser;
    BrowserContext context;
    Page page;

    @Configuration
    public static class AppConfig {
        @Bean
        public User user() {
            return new User();
        }
    }

    @BeforeAll
    static void launchBrowser(){
        playwright = Playwright.create();
        browser = playwright.chromium().launch();
    }

    @AfterAll
    static void closeBrowser() {
        browser.close();
    }

    @BeforeEach
    void createContextAndPage() {
        context = browser.newContext();
        page = context.newPage();
    }

    @AfterEach
    void closeContext() {
        context.close();
    }

    @MockBean
    private UserService userService;

    @Autowired
    private UserController controller;

    @Autowired
    private RestTemplateBuilder restTemplateBuilder;

    private RestTemplate restTemplate;

    @BeforeEach
    void setUpRestTemplate() {
        restTemplate = restTemplateBuilder.build();
    }

    @Test
    public void signupReturnsSuccess() {

        final HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", MediaType.APPLICATION_JSON_VALUE);


        User user = new User();
        user.setEmail("[email protected]");
        user.setName("username");
        user.setPassword("Password1!");


        final ResponseEntity<User> response = restTemplate.exchange(
                String.format("http://localhost:%d/users/signup", 8080),
                HttpMethod.POST,
                new HttpEntity<>(user, headers),
                User.class
        );

                assertThat(response.getStatusCode()).isEqualTo(HttpStatus.CREATED);



    }
}

this is the error that i keep getting:

LandingPageTest > initializationError FAILED
    java.lang.AbstractMethodError at SpringExtension.java:381

This is a snapshot of the terminal print out:

java.lang.AbstractMethodError: Receiver class org.junit.jupiter.engine.descriptor.ClassExtensionContext does not define or inherit an implementation of the resolved method 'abstract org.junit.jupiter.api.extension.ExecutableInvoker getExecutableInvoker()' of interface org.junit.jupiter.api.extension.ExtensionContext.
    at org.springframework.test.context.junit.jupiter.SpringExtension.registerMethodInvoker(SpringExtension.java:381)
    at org.springframework.test.context.junit.jupiter.SpringExtension.beforeAll(SpringExtension.java:132)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeBeforeAllCallbacks$8(ClassBasedTestDescriptor.java:368)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    

I have tried changing the dependency versions within my build.gradle file but it doesn't seem to be working.

here is my current set up:

dependencies {
    // Spring Boot dependencies
    implementation 'com.microsoft.playwright:playwright:1.28.0'
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb:2.6.5' // Update version
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf:2.6.5' // Update version
    implementation 'org.springframework.boot:spring-boot-starter-web:2.6.5' // Update version
    implementation 'com.fasterxml.jackson.core:jackson-databind'

    // Testing dependencies
    testImplementation 'org.junit.platform:junit-platform-launcher:1.9.3'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'io.projectreactor:reactor-test'
}
正文到此结束
热门推荐
本文目录