2012-12-12 1 views
1

여기에 누락 된 것이 있습니까?Hamcrest의 anything()이 컴파일되지 않습니다

@Test 
public void testAnything(){ 
    Random random = new Random(); 
    assertThat(random.nextInt(), is(equalTo(anything()))); 
} 

이것은 컴파일되지 않습니다. "MatcherAssert 형식의 메소드 assertThat (T, Matcher)가 인수 (int, Matcher>)에 적용 할 수 없다"라는 문구가 발생합니다.

무언가() 사용에 대해 놓친 것이 있습니까? 나는 과거에 다른 햄클레스트 방법을 사용 해왔다. 그래서 이것에 대해 다른 점은 무엇인가?

답변

2

그건 어떻게 equalTo 작동하지 않습니다. 내부적으로 Object#equals(Object)을 호출하고 anything()을 전달해야합니다. 그건 말이되지 않습니다. 그냥 생략하면 작동합니다.

Random random = new Random(); 
assertThat(random.nextInt(), is(anything())); 
관련 문제