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

  • Kotlin Blueprints
  • Ashish Belagali Hardik Trivedi Akshay Chordiya
  • 244字
  • 2021-07-02 21:50:19

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)
}

}
主站蜘蛛池模板: 来凤县| 中西区| 喀喇沁旗| 定陶县| 班戈县| 化州市| 博白县| 义乌市| 澄城县| 金山区| 嵊州市| 碌曲县| 三门峡市| 容城县| 南川市| 桑日县| 彰武县| 札达县| 宁夏| 太原市| 东丰县| 荔波县| 阿图什市| 平阴县| 纳雍县| 博客| 墨江| 墨玉县| 清苑县| 延庆县| 岐山县| 安顺市| 东兰县| 许昌县| 阿鲁科尔沁旗| 旬邑县| 喜德县| 尉犁县| 大埔区| 个旧市| 昭平县|