官术网_书友最值得收藏!

Test cases

All the tests are put in the test module with the same package name of the code. Mainly the test cases are written for the Controller, but you can even write for Repository for which you'll need to mock the database using Mockito or some other mocking library.

The MockMvc class is the entry point for performing server-side tests. We can perform HTTP requests such as GET, POST, and others on the URLs to test the REST endpoints.

MessageControllerTests: Test cases for the MessageController are written in human readable names using ` while writing function names.

Consider the following example:

    @RunWith(SpringRunner::class)
@SpringBootTest
class MessageControllerTests {

@Autowired lateinit var context: WebApplicationContext
@Autowired lateinit var messageRepository: MessageRepository
@Autowired lateinit var mapper: ObjectMapper

/**
* Entry point to server side tests
*/
lateinit var mockMvc: MockMvc

@Before
fun setup() {
messageRepository.deleteAll()
mockMvc = webAppContextSetup(this.context).build()
}

@Test
fun `Create new message`() {
val message = Message("""We have some dummy message over here
to
perform some testing and I have started to write test
cases for my code"""
.trimMargin()
, Point(0.0, 0.0))
mockMvc.perform(post("/message")
.content(mapper.writeValueAsString(message))
.contentType(APPLICATION_JSON_UTF8))
.andExpect(status().isCreated)
}

@Test
fun `Get all messages`() {
messageRepository.insert(Message("I love Kotlin"))
messageRepository.insert(Message("I love this book",
Point(0.0, 0.0)))
mockMvc.perform(get("/message")
.accept(APPLICATION_JSON_UTF8)).andExpect(status().isOk)
}

@Test
fun `Find messages in the specified region`() {
messageRepository.insert(Message("I love Kotlin", Point(0.0,
0.0)))
messageRepository.insert(Message("I love this book",
Point(1.0, 1.0)))
mockMvc.perform(get("/message/bbox/{xMin},{yMin},{xMax},
{yMax}"
, -1, -1, 2, 2)
.accept(APPLICATION_JSON_UTF8))
.andExpect(status().isOk)
}

@Test
fun `Subscribe to the message`() {
mockMvc.perform(get("/message/subscribe"))
.andExpect(status().isOk)
}

}
主站蜘蛛池模板: 麟游县| 平舆县| 永和县| 会理县| 上蔡县| 平阴县| 宁河县| 修文县| 隆安县| 葵青区| 响水县| 珠海市| 塔城市| 庆安县| 贵阳市| 邢台市| 威海市| 永登县| 鄂托克旗| 平南县| 新津县| 温州市| 巧家县| 潞城市| 洞头县| 河曲县| 周宁县| 平和县| 长乐市| 通化县| 巴林左旗| 光泽县| 四平市| 汉寿县| 华容县| 永修县| 久治县| 台中县| 延吉市| 长汀县| 崇礼县|