私はPyHamcrestを使用していますが、この質問は言語に依存しないと思います。
私は向きを変えたいと思います:
assert_that(actual0, matcher0)
assert_that(actual1, matcher1)
両方のアサーションが失敗した場合にエラーメッセージにそのように表示されるように、単一のアサーションに変換します。これは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))
しかし、私はすでにこのようなものの実装があるかどうか疑問に思っています。