반응형
AssertjUnit의 문자열에 포함
jUnit으로 작성하는 더 좋은 방법이 있습니까
String x = "foo bar";
Assert.assertTrue(x.contains("foo"));
Hamcrest 및 JUnit4를 추가하면 다음을 수행 할 수 있습니다.
String x = "foo bar";
Assert.assertThat(x, CoreMatchers.containsString("foo"));
일부 정적 가져 오기를 사용하면 훨씬 좋아 보입니다.
assertThat(x, containsString("foo"));
필요한 정적 가져 오기는 다음과 같습니다.
import static org.junit.Assert.assertThat;
import static org.hamcrest.CoreMatchers.containsString;
가능하면 fest assert 2.0 사용 편집 : assertj에 더 많은 어설 션이있을 수 있습니다 (포크)
assertThat(x).contains("foo");
hamcrest matcher 사용 containsString()
// Hamcrest assertion
assertThat(person.getName(), containsString("myName"));
// Error Message
java.lang.AssertionError:
Expected: a string containing "myName"
got: "some other name"
더 자세한 오류 메시지를 선택적으로 추가 할 수 있습니다.
// Hamcrest assertion with custom error message
assertThat("my error message", person.getName(), containsString("myName"));
// Error Message
java.lang.AssertionError: my error message
Expected: a string containing "myName"
got: "some other name"
새로운 assertThat구문을 Hamcrest 와 함께 사용하십시오 .
JUnit 4.4 부터 사용할 수 있습니다 .
다른 변형은
Assert.assertThat(actual, new Matches(expectedRegex));
또한에 org.mockito.internal.matchers다른 흥미로운 매처 (matcher), 같은있다 StartWith, Contains등
너무 늦었지만 업데이트하기 위해 아래 구문으로 완료했습니다.
import org.hamcrest.core.StringContains;
import org.junit.Assert;
Assert.assertThat("this contains test", StringContains.containsString("test"));
이 페이지에서 많은 답변을 시도했지만 실제로 효과가 없었습니다.
- org.hamcrest.CoreMatchers.containsString 이 컴파일되지 않고 메소드를 분석 할 수 없습니다.
- JUnitMatchers.containsString 은 지원되지 않으며 CoreMatchers.containsString을 참조합니다.
- org.hamcrest.Matchers.containsString : NoSuchMethodError
그래서 읽을 수있는 코드를 작성하는 대신 질문에서 언급 한 간단하고 실행 가능한 방법을 사용하기로 결정했습니다.
바라건대 다른 해결책이 나올 것입니다.
참고 URL : https://stackoverflow.com/questions/1092219/assertcontains-on-strings-in-junit
반응형
'Programming' 카테고리의 다른 글
| 배치 파일에 파일이 있는지 확인하는 방법은 무엇입니까? (0) | 2020.05.24 |
|---|---|
| 간단히 말해서 스택 프레임의 개념을 설명하십시오 (0) | 2020.05.24 |
| Asp.Net Core에서 동일한 인터페이스의 여러 구현을 등록하는 방법은 무엇입니까? (0) | 2020.05.24 |
| 종속 DLL이 Visual Studio의 빌드 출력 폴더로 복사되지 않습니다 (0) | 2020.05.24 |
| 기존 JavaScript 라이브러리에서 .d.ts "typings"정의 파일을 어떻게 생성합니까? (0) | 2020.05.24 |