3

私は働いています:

  • スポック・コア
  • スポックレポート
  • スポックスプリング
  • 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が解決できるかどうかは興味深い..

4

1 に答える 1