私はSpring Mvc REST Controllerのテストを書いたかったのです。私はhttps://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4の公式の文書に従っていますので、更新されたバージョンto 1.4
となりました。スプリングブート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フレームワークを使用してテストを書くので、私はいくつかの細部を見落としている可能性があります。
私にこれを手伝ってください。問題#2については
given(this.loggingService.logInfoMessage("some Dummy Message", this.getClass()))
.willReturn("your desired value")
:org.springframework.boot.test.TestRestTemplateはorg.springframework.boot.test.web.client.TestRestTemplateの賛成で廃止されました