SpringBoot(Test)
程序员文章站
2022-07-14 10:25:37
...
spring boot test
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
XXTest.java
@RunWith(SpringRunner.class)
@SpringBootTest
public class ZcsDataprocessorApplicationTests {
@Bean
private UserService userService(){
return new UserServiceImpl();
}
@Autowired
private UserService userService;
@Test
public void xxxTest() {
....
}
}
spring boot test with mock
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
XXTest.java
@RunWith(SpringRunner.class)
@SpringBootTest(classes = { xxxx.class })
public class TestUserService {
@Mock
private UserService userService;
private Logger logger = LoggerFactory.getLogger(getClass());
@Before
public void setUp(){
User mockUser = new User();
mockUser.setName("john");
mockUser.setId(1L);
mockUser.setCreateDate(new Date());
when(userService.findOne(1L)).thenReturn(mockUser);
}
@Test
public void findOneTest() {
User user = userService.findOne(1L);
logger.info("user.name = {}",user.getName());
Assert.assertEquals(user.getName(), "john");
}
}
spring boot other tests
@RunWith(SpringRunner.class)
@WebMvcTest(UserVehicleController.class)
public class MyControllerTests {
@Autowired
private MockMvc mvc;
@MockBean
private UserVehicleService userVehicleService;
@Test
public void testExample() throws Exception {
given(this.userVehicleService.getVehicleDetails("sboot"))
.willReturn(new VehicleDetails("Honda", "Civic"));
this.mvc.perform(get("/sboot/vehicle").accept(MediaType.TEXT_PLAIN))
.andExpect(status().isOk()).andExpect(content().string("Honda Civic"));
}
}
@RunWith(SpringRunner.class)
@WebMvcTest(UserVehicleController.class)
public class MyHtmlUnitTests {
@Autowired
private WebClient webClient;
@MockBean
private UserVehicleService userVehicleService;
@Test
public void testExample() throws Exception {
given(this.userVehicleService.getVehicleDetails("sboot"))
.willReturn(new VehicleDetails("Honda", "Civic"));
HtmlPage page = this.webClient.getPage("/sboot/vehicle.html");
assertThat(page.getBody().getTextContent()).isEqualTo("Honda Civic");
}
}
@RunWith(SpringRunner.class)
@JdbcTest
public class ExampleNonTransactionalTests {
@Autowired
private JdbcTemplate jdbcTemplate;
@Test
public void testExample() throws Exception {
...
}
}
@RunWith(SpringRunner.class)
@DataJpaTest
public class ExampleRepositoryTests {
@Autowired
private TestEntityManager entityManager;
@Autowired
private UserRepository repository;
@Test
public void testExample() throws Exception {
...
}
}
@RunWith(SpringRunner.class)
@DataMongoTest
public class ExampleDataMongoTests {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void testExample() throws Exception {
...
}
}
@RunWith(SpringRunner.class)
@RestClientTest(RemoteVehicleDetailsService.class)
public class ExampleRestClientTest {
@Autowired
private RemoteVehicleDetailsService service;
@Autowired
private MockRestServiceServer server;
@Test
public void getVehicleDetailsWhenResultIsSuccessShouldReturnDetails() throws Exception {
...
}
}
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyTest {
@Autowired
private TestRestTemplate template;
@Test
public void testRequest() throws Exception {
...
}
}
spring boot integration test
@RunWith(SpringRunner.class)
@SpringBootTest(classes = { XXX.class, YYY.class}, webEnvironment = WebEnvironment.DEFINED_PORT)
@ActiveProfiles("dev")
public class ZcsUserServiceTests {
@Test
public void testLogin() {
String url = "http://127.0.0.1:8080/zcs/user/login";
Map<String, String> forms = new HashMap<String, String>();
forms.put("username", "zhaomeng");
forms.put("password", "123456");
String result = HttpClientHelper.form(url, forms);
System.out.println(result);
}
@Test
public void testInvalidSuggest() {
CloseableHttpClient client = HttpClientHelper.defaultClient();
//未登陆
String url = "http://127.0.0.1:8080/zcs/input/suggest/list?term=teng";
String result1 = HttpClientHelper.get(client, url);
System.out.println("登入前:" + result1);
//登陆
url = "http://127.0.0.1:8080/zcs/user/login";
Map<String, String> forms = new HashMap<String, String>();
forms.put("username", "zhaomeng");
forms.put("password", "123456");
String result2 = HttpClientHelper.form(client, url, forms);
System.out.println("登入:" + result2);
//已登陆
url = "http://127.0.0.1:8080/zcs/input/suggest/list?term=teng";
String result3 = HttpClientHelper.get(client, url);
System.out.println("登入后:" + result3);
//登出
url = "http://127.0.0.1:8080/zcs/user/logout";
String result4 = HttpClientHelper.get(client, url);
System.out.println("登出:" + result4);
//已登出
url = "http://127.0.0.1:8080/zcs/input/suggest/list?term=teng";
String result5 = HttpClientHelper.get(client, url);
System.out.println("登出后:" + result5);
HttpClientHelper.closeClient(client);
}
@Test
public void testValidSuggest() {
CloseableHttpClient client = HttpClientHelper.defaultClient();
//未登陆
String url = "http://127.0.0.1:8080/zcs/input/suggest/list?term=teng";
String result1 = HttpClientHelper.get(client, url);
System.out.println("错误登入前:" + result1);
//登陆
url = "http://127.0.0.1:8080/zcs/user/login";
Map<String, String> forms = new HashMap<String, String>();
forms.put("username", "zhaomeng");
forms.put("password", "ssss");
String result2 = HttpClientHelper.form(client, url, forms);
System.out.println("错误登入:" + result2);
//已登陆
url = "http://127.0.0.1:8080/zcs/input/suggest/list?term=teng";
String result3 = HttpClientHelper.get(client, url);
System.out.println("错误登入后:" + result3);
HttpClientHelper.closeClient(client);
}
@Test
public void testLogout() {
String url = "http://127.0.0.1:8080/zcs/user/logout";
String result = HttpClientHelper.get(url);
System.out.println(result);
}
}
转载于:https://my.oschina.net/igooglezm/blog/884650
上一篇: 主键和聚集索引