私はPyHamcrestを使用していますが、この質問は言語に依存しないと思います。ハムクレストで複数のassert_thatを組み合わせるには?
Iターンしたいと思います:
assert_that(actual0, matcher0)
assert_that(actual1, matcher1)
ように単一のassertに両方のアサーションが失敗した場合、エラーメッセージはそう言います。これはHamcrest(または他のパッケージ/モジュール)で行うことができますか? Pythonで
、私が実装しました:
def assert_all(*assertions):
assertion_failed = False
assertion_message = []
for (actual, matcher) in assertions:
try:
hamcrest.assert_that(actual, matcher)
except AssertionError as e:
assertion_failed = True
assertion_message.append(e.message)
if assertion_failed:
raise AssertionError(''.join(assertion_message))
をので、私のテストを呼び出します。
assert_all(
(actual0, matcher0),
(actual1, matcher1))
をしかし、このようなものの実装は既にあります場合、私は思ったんだけど。
actual
両方のアサーションが失敗した場合は、最初のアサーションのみが報告されます。 –
通常、実際の値はメソッドとして既にシーケンスとして返されます。あなたの例のように、アサーションを2つの別々の値に組み合わせたいのはなぜか分かりませんが、具体的な例がよりよく説明できます。 Hamcrestのmatcherは、mockingメソッドなどの主張以上に使用されていることに注意してください。 –
プロジェクトでチケットを開封できますか? –