Groovyの素晴らしいパワーアサート・ステートメントに似た結果が得られるかどうかは疑問です。Groovyに似たScalaの "Power assert"のようなものはありますか?
> assert ["1", '2']*.size() == [2, 3]
Result: Assertion failed:
assert ["1", '2']*.size() == [2, 3]
| |
[1, 1] false
は、私の知る限り、私が現在使用しているどちらの言語で、また scalatest
でこのようなことのためのサポート、ありません。 しかし、誰かがそれを行ういくつかのサイドライブラリを提案することができますか?これはペットプロジェクトなので、実験的でうまくサポートされていないライブラリもうまくいきます。
EDIT:私はマッチャー(スケートのもの、またはプレーン - ジャワのハムクレストマッチャー)について知っています。私はそれらを冗長に書いており、その出力には詳細がないことがわかります。
上記の例は、エラーの検出を容易にする中間的な計算ステップを示しています。テストされたコードの何が間違っているかを詳細に示します。
私は、このような振る舞いを導入するには、実行時に式ASTに関する情報が必要になると思います。しかし、私は、この情報はマクロの使用法でコンパイル時に "焼く"ことができると考えています。
I.e.どこ - だから私はそれがすでに実装されます場合は見ていると、そうであればよ
if (!(a + b == c)) {
// detailed message is
// compute a
// compute b
// compute a + b
// compute c
// compute a + b == c
// Make it pretty.
throw new AssertionFailedException(prettyDetailedMessage)
}
:我々は表現assert a + b == c
スカラ座(または私が探しているいくつかのマクロ拡張子)を持っている場合のようなものにそれを書き換えることができます。
恐ろしい!それが私が見てきたものです。ありがとうございました! – Seagull