簡體   English   中英

Spring 上下文無法在 Spock 測試方法中加載

[英]Spring context can not be loaded in Spock test method

您好我有一個 Spring Boot (2.1.6 RELEASE) 應用程序,我正在嘗試向我的應用程序添加一些簡單的集成測試。 首先,我創建了一個基本的 IntegrationTest class,如下所示:

@TypeChecked
@Transactional
@Rollback
@SpringBootTest(classes = AppRunner.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
abstract class IntegrationTest extends Specification {

    @Autowired
    protected WebApplicationContext webApplicationContext

    @Autowired
    ObjectMapper objectMapper

    MockMvc mockMvc

    @Before
    void setupMockMvc() {
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
                .apply(springSecurity())
                .build()
    }

    protected ResultActions makePost(final String uri, final Object dto) {
        mockMvc.perform(post(uri)
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content(dtoToJson(dto))
        )
    }

    private String dtoToJson(final Object dto) {
        return objectMapper.writeValueAsString(dto)
    }
}

這是我的測試方法:

class TestForTest extends IntegrationTest {


    @WithMockUser(username = "xxx@gmail.com")
    def "should reset password and send mail with proper activation link"() {
        given:
            def email = "user2@xxx.com"
        when:
            ResultActions result = makePost("/rest/user/resendActivationMail", email)
        then:
            1 == 1
            println(result)
    }
}

很奇怪,因為我感覺上下文沒有被加載,所以沒有任何嘗試這樣做。

我收到錯誤:

java.lang.IllegalArgumentException:WebApplicationContext 是必需的

at org.springframework.util.Assert.notNull(Assert.java:198)
at org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder.<init>(DefaultMockMvcBuilder.java:52)
at org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup(MockMvcBuilders.java:51)
at pl.isolution.veolia.mveolia.spec.IntegrationTest.setupMockMvc(IntegrationTest.groovy:37)

Maven或IntellijIDEA有問題嗎? 這花了大約 340 毫秒,我沒有看到任何上下文加載嘗試。

我的堆棧:JAVA 11、Maven 3、Spring Boot 2.1.6、Spock 1.3-groovy-25。

有什么建議么?

好吧真可惜:) 我錯過了一個依賴。

       <dependency>
            <groupId>org.spockframework</groupId>
            <artifactId>spock-core</artifactId>
            <version>1.3-groovy-2.5</version>
            <scope>test</scope>
        </dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM