欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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