동적으로 생성되는 일부 리소스를 모의하려고합니다. 이러한 자원을 생성하려면 클래스 인수를 전달해야합니다. 그래서 예를 들면 :Mockito 특정 일치 클래스 인수
FirstResourceClass firstResource = ResourceFactory.create(FirstResourceClass.class);
SecondResourceClass secondResource = ResourceFactory.create(SecondResource.class);
이 잘 나는 조롱하려고 할 때까지 좋다. 그것은 가짜처럼 보인다
PowerMockito.mockStatic(ResourceFactory.class);
FirstResourceClass mockFirstResource = Mockito.mock(FirstResourceClass.class);
SecondResourceClass mockSecondResource = Mockito.mock(SecondResourceClass.class);
PowerMockito.when(ResourceFactory.create(Matchers.<Class<FirstResourceClass>>any()).thenReturn(mockFirstResource);
PowerMockito.when(ResourceFactory.create(Matchers.<Class<SecondResourceClass>>any()).thenReturn(mockSecondResource);
가 호출 클래스에 주입되고 있지만, FirstResourceClass
은 컴파일 오류가 발생 mockSecondResource
을 보내되고있다 :이 같은 일을하고있다.
문제는 내가 (this question에서 얻은) any()를 사용하여 생각합니다. 나는 isA()
을 사용해야한다고 생각하지만, Class
인수가 필요하므로 그 메소드 호출을 만드는 방법을 잘 모르겠습니다. 내가 FirstResourceClass.class
시도하고 컴파일 오류가 발생합니다.
'any()'는 어떤 경우에도 모두 일치하므로 작동하지 않습니다. 나는 여기'eq()'를 시도 할 것이다 :'Matchers.eq (FirstResourceClass.class)'. 이 방법은 인자가 주어진 클래스와 같을 때 매처 (matcher)가 일치한다. –