私は働いています:
- スポック・コア
- スポックレポート
- スポックスプリング
- Spring MVC テスト
そして、私は次のコードを持っています:
@FailsWith(java.lang.AssertionError.class)
def "findAll() Not Expected"(){
given:
url = PersonaUrlHelper.FINDALL;
when:
resultActions = mockMvc.perform(get(url)).andDo(print())
then:
resultActions.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_XML))
}
ここでは、テストされているメソッドがではなく実際に返されるため、コードは失敗します(どのように予想されるか) 。 (MediaType.APPLICATION_JSON)
(MediaType.APPLICATION_XML)
という理由で@FailsWith(java.lang.AssertionError.class)
。
使ってもスポックレポート@FailsWith(value=java.lang.AssertionError.class, reason="JSON returned ...")
が見れないreason
質問 1 : どうすればSpock レポートreason
を表示できますか?
Spock が throw ()メソッドを提供していることは知っているので、次のことができます。
then:
def e = thrown(IllegalArgumentException)
e.message == "Some expected error message"
println e.message
悲しいことに、スローは AssertionError では機能しません。
テストメソッドを使用するthrown(AssertionError)
と、パスしない場合、独自の方法で通過しますが、AssertionError からエラーメッセージ@FailsWith
を取得できません
質問 2 AssertionError からエラー メッセージを取得するにはどうすればよいですか?
私は次のようなことができることを知っています
then: "Something to show on Spock Reports"
しかし、質問2が解決できるかどうかは興味深い..