From dbae0fc83732eb0e7025db5def0f9d4faa242aa2 Mon Sep 17 00:00:00 2001
From: wangxd <1114207539@qq.com>
Date: Mon, 1 Jan 2018 15:00:07 +0800
Subject: [PATCH] junit demo simple done
---
junit-demo/README.md | 37 ++++++++++
junit-demo/pom.xml | 4 ++
.../wxd/junit/demo/web/SimpleController.java | 29 ++++++++
.../demo/simple/SimpleControllerDemoTest.java | 67 +++++++++++++++++++
.../junit/demo/simple/SimpleDemoAllTest.java | 9 +++
5 files changed, 146 insertions(+)
create mode 100644 junit-demo/README.md
create mode 100644 junit-demo/src/main/java/org/wxd/junit/demo/web/SimpleController.java
create mode 100644 junit-demo/src/test/java/org/wxd/junit/demo/simple/SimpleControllerDemoTest.java
create mode 100644 junit-demo/src/test/java/org/wxd/junit/demo/simple/SimpleDemoAllTest.java
diff --git a/junit-demo/README.md b/junit-demo/README.md
new file mode 100644
index 0000000..2573654
--- /dev/null
+++ b/junit-demo/README.md
@@ -0,0 +1,37 @@
+[toc]
+# Junit
+## 常用注解介绍
+### @BeforeClass
+
+在所有测试方法前执行一次
+### @AfterClass
+
+在所有测试方法后执行一次
+### @Before
+
+在每个测试执行前执行一次
+### @After
+
+在每个测试执行后执行一次
+### @Test
+
+指定被执行测试的方法
+- @Test(timeout = 1000)
+ - 测试方法执行超时时间,超时则失败
+- @Test(expected = Exception.class)
+ - 指定期望得到的异常,如果抛出该异常,则失败
+
+### @Ignore
+可以注解在类或者方法上,表示忽略执行测试
+
+### @RunWith
+指定使用那种Runner来调用测试代码
+
+#### Suite.class
+打包测试
+
+##### @SuiteClasses
+指定执行多个单元测试类
+
+
+
diff --git a/junit-demo/pom.xml b/junit-demo/pom.xml
index 3905c4b..c1d305b 100644
--- a/junit-demo/pom.xml
+++ b/junit-demo/pom.xml
@@ -16,6 +16,10 @@
org.springframework.boot
spring-boot-starter
+
+ org.springframework.boot
+ spring-boot-starter-web
+
diff --git a/junit-demo/src/main/java/org/wxd/junit/demo/web/SimpleController.java b/junit-demo/src/main/java/org/wxd/junit/demo/web/SimpleController.java
new file mode 100644
index 0000000..6f6a73d
--- /dev/null
+++ b/junit-demo/src/main/java/org/wxd/junit/demo/web/SimpleController.java
@@ -0,0 +1,29 @@
+package org.wxd.junit.demo.web;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+import org.wxd.junit.demo.service.SimpleService;
+
+@RestController
+public class SimpleController {
+ @Autowired
+ private SimpleService service;
+
+ @RequestMapping(value = "/simple/{id}",method = RequestMethod.GET)
+ public String of(@PathVariable String id){
+ return service.of(id);
+ }
+
+ @RequestMapping(value = "/simple/{id}/remove",method = RequestMethod.DELETE)
+ public void delOf(@PathVariable String id){
+ service.delOf(id);
+ }
+
+ @RequestMapping(value = "/simple/add",method = RequestMethod.POST)
+ public void add(String id){
+ service.save(id);
+ }
+}
diff --git a/junit-demo/src/test/java/org/wxd/junit/demo/simple/SimpleControllerDemoTest.java b/junit-demo/src/test/java/org/wxd/junit/demo/simple/SimpleControllerDemoTest.java
new file mode 100644
index 0000000..2fa9842
--- /dev/null
+++ b/junit-demo/src/test/java/org/wxd/junit/demo/simple/SimpleControllerDemoTest.java
@@ -0,0 +1,67 @@
+package org.wxd.junit.demo.simple;
+
+
+import org.junit.*;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+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.result.MockMvcResultMatchers;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import org.springframework.web.context.WebApplicationContext;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringBootTest
+@WebAppConfiguration
+@FixMethodOrder(value = MethodSorters.JVM)
+public class SimpleControllerDemoTest {
+
+ MockMvc mvc;
+ @Autowired
+ WebApplicationContext context;
+ static String id = "id";
+
+ @Before
+ public void setUp() throws Exception {
+ mvc = MockMvcBuilders.webAppContextSetup(context).build();
+
+ mvc.perform(MockMvcRequestBuilders.post("/simple/add").param("id",id))
+ .andExpect(MockMvcResultMatchers.status().isOk());
+ }
+
+ @Test
+ public void assertOfId() throws Exception {
+ String qId = mvc.perform(MockMvcRequestBuilders.get(String.format("/simple/%s",id)))
+ .andExpect(MockMvcResultMatchers.status().isOk())
+ .andReturn().getResponse().getContentAsString();
+ Assert.assertEquals(id,qId);
+ }
+
+ @Test
+ public void assertDel() throws Exception {
+ remove();
+ String qId = mvc.perform(MockMvcRequestBuilders.get(String.format("/simple/%s",id)))
+ .andExpect(MockMvcResultMatchers.status().isOk())
+ .andReturn().getResponse().getContentAsString();
+
+ Assert.assertEquals("",qId);
+ }
+
+
+ private void remove() throws Exception {
+ mvc.perform(
+ MockMvcRequestBuilders.delete(String.format("/simple/%s/remove",id))
+ ).andExpect(MockMvcResultMatchers.status().isOk());
+ }
+
+
+ @After
+ public void clearUp() throws Exception {
+ remove();
+ }
+}
diff --git a/junit-demo/src/test/java/org/wxd/junit/demo/simple/SimpleDemoAllTest.java b/junit-demo/src/test/java/org/wxd/junit/demo/simple/SimpleDemoAllTest.java
new file mode 100644
index 0000000..5e934c3
--- /dev/null
+++ b/junit-demo/src/test/java/org/wxd/junit/demo/simple/SimpleDemoAllTest.java
@@ -0,0 +1,9 @@
+package org.wxd.junit.demo.simple;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({SimpleServiceDemoTest.class, SimpleControllerDemoTest.class})
+public class SimpleDemoAllTest {
+}