web-dev-qa-db-ja.com

Groovy 'assert':値を表示する方法は?

Groovyでtrueまたはfalseの値を表示するにはどうすればよいですか? IDEとしてEclipseを使用しています。

    assert 4 * ( 2 + 3 ) - 6 == 14 //integers only

また、Groovyでの「アサート」も理解していません。 Javaのif()ステートメント/ブールのようなものですか?

Groovyで「アサート」はどのような役割を果たしますか?

17
AppSensei

アサーションはifに似ており、指定した式を検証します。式がtrueの場合は次のステートメントまで実行を継続し(何も出力しません)、式がfalseの場合はAssertionErrorを発生させます。

次のように、コロンで区切られたメッセージを提供するエラーメッセージをカスタマイズできます。

assert 4 * ( 2 + 3 ) - 5 == 14 : "test failed"

印刷されます:

Java.lang.AssertionError: test failed. Expression: (((4 * (2 + 3)) - 5) == 14)

しかし、テストを失敗させるために、テストの値を変更する必要がありました。

アサーションの使用はあなたの好み次第です:それらを使用して、作業に進む前に真でなければならない何かをアサートできます( 契約による設計 を参照)。

例えば。処理するために正の数を必要とする関数は、最初のステートメントとしてアサーションを実行して引数が正であるという事実をテストできます:

def someFunction(n) {
    assert n > 0 : "someFunction() wants a positive number you provided $n"
    ...
}
35
user1708042

Groovyのアサートは非常に印象的です。彼らは実際にステートメント内のすべての変数の値を出力します(これはデバッグに最適です)

たとえば、bが5、aが{it ^ 2}、cが15の場合、次のように出力されます。

assert( a(b)  == c)
.       | |   |  |
.      25 |  !=  15
.         5

(まあ-そのような何か-Groovy'sはおそらくもっとよく見えるでしょう)。

この種類の出力を例外行で取得できるとしたら...

9
Bill K

式の結果が真になることを「アサート」する