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

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

}
主站蜘蛛池模板: 江门市| 井陉县| 屏边| 新密市| 丹棱县| 耒阳市| 赣州市| 贺州市| 新泰市| 泾阳县| 清新县| 阿拉善左旗| 卓尼县| 长丰县| 昌乐县| 鄢陵县| 贵德县| 茶陵县| 阳信县| 福建省| 如皋市| 屏东县| 达孜县| 海门市| 海晏县| 永仁县| 莆田市| 嘉禾县| 高邮市| 竹北市| 奉化市| 大关县| 临安市| 健康| 临沂市| 淮滨县| 嘉黎县| 凯里市| 利川市| 滁州市| 桓仁|