저는 PyHamcrest를 사용하고 있습니다.하지만이 질문은 언어에 무관심하다고 생각합니다.햄스터 (Hamcrest)에서 여러 assert_that를 결합하는 방법은 무엇입니까?
나는 회전 싶습니다 :
assert_that(actual0, matcher0)
assert_that(actual1, matcher1)
을 하나의 어설로 두 주장이 실패 할 경우, 오류 메시지가 이렇게 말한다 있도록. Hamcrest (또는 다른 패키지/모듈)에서이 작업을 수행 할 수 있습니까?
assert_all(
(actual0, matcher0),
(actual1, matcher1))
하지만 이미이 같은의 구현이 있는지 궁금하네요 :
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))
그래서 내 테스트가 부를 것이다 : 파이썬에서
은, 내가 구현했습니다.
두 어설 션이 모두 실패하면 첫 번째 어설 션 만보고됩니다. –
일반적으로 실제 값은 이미 시퀀스로 메서드에 의해 반환됩니다. 귀하의 예제 에서처럼 어설 션을 두 개의 개별 값에 결합하려는 이유는 모르겠지만 구체적인 예를 들어 보면 더 잘 설명 할 수 있습니다. Hamcrest matchers는 조롱 방법과 같은 주장 이상의 용도로 사용됩니다. –
프로젝트 티켓을 열어주세요. –