2016-12-08 68 views
1

我想为我的Spring mvc REST控制器编写测试。我正在关注https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4以及刚刚更新的版本to 1.4的官方文档,并按照doc的建议添加了spring引导。Spring引导1.4 - REST API测试

我加入了以下相关:

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-test</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-tomcat</artifactId> 
    <scope>provided</scope> 
</dependency> 

和家长

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.2.RELEASE</version> 
    </parent> 

我的LoginController API,我想测试看起来像这样:

@RequestMapping(value = { "/login" }, method = RequestMethod.GET) 
    public @ResponseBody ResponseEntity<HashMap<String, Object>> login() { 


      // some logic to get Customer 
     return new ResponseEntity<>(customer, HttpStatus.OK); 

    } 

而且按照文件这里是我的测试:

@RunWith(SpringRunner.class) 
@WebMvcTest(LoginController.class) 
@SpringBootTest 
public class AuthorizationAndAuthenticationTest extends WebSecurityConfigurerAdapter { 

    @Autowired 
    private WebApplicationContext webApplicationContext; 
    private LoginController loginController; 
    @Autowired 
    private TestRestTemplate restTemplate; 

    @MockBean 
    private LoggingService loggingService; 

    @Test 
    public void test() { 
     given(this.loggingService.logInfoMessage("some Dummy Message", this.getClass())). 
     this.restTemplate.getForObject("/login", Object.class); 
    } 
} 

问题: 1.由于登录控制器可使用多种服务,我想使用“给予”嘲笑他们,但它给了编译问题,好像我的思念,虽然不知道一些依赖。 2.TestRestTemplate已弃用,替代方法是什么?我没有找到任何替代品。

这是我第一次将利用Spring框架因此有可能我正在俯瞰一些微小的细节来编写测试。

请帮我这个。

回答