Open prayagupa opened 6 years ago
Trick is do to call beforeAll of HttpTestContextManager
first.
import somepackage.SomeConfig
import org.scalatest.{BeforeAndAfterAll, FunSuite, GivenWhenThen, Matchers}
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.test.context.web.WebAppConfiguration
import org.springframework.test.context.{ContextConfiguration, TestContextManager}
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders
import org.springframework.test.web.servlet.result.MockMvcResultHandlers
import org.springframework.test.web.servlet.setup.MockMvcBuilders
import org.springframework.web.context.WebApplicationContext
@ContextConfiguration(classes = Array(classOf[SomeConfig]))
@WebAppConfiguration
class MusicEndpointComponentSpec extends FunSuite with Matchers with GivenWhenThen with BeforeAndAfterAll {
@Autowired
val webApplicationContext: WebApplicationContext = null
var endpoint: MockMvc = null
new TestContextManager(this.getClass()).prepareTestInstance(this)
override protected def beforeAll(): Unit = {
super.beforeAll()
endpoint = MockMvcBuilders.webAppContextSetup(webApplicationContext).build()
}
test("accepts order-status request and responds with order-status response") {
val response = endpoint.perform(MockMvcRequestBuilders.post("/api/music")
.content("{}")).andDo(MockMvcResultHandlers.print())
response.andExpect(MockMvcResultMatchers.status().is(200))
}
}
test1
test2
error
what works is