을 설명해주십시오; 나는 그것에 문제가 보이지 않는다. 즉시 코드가 또는 보다 위에있는 것일 가능성이 높습니다. 예외 코드는입니다. 키는 다음과 같습니다.
잘못된 인수 매처 사용! 1 명의 matchers가 예상되었고, 2 명이 기록되었습니다.
any
위에서 사용했듯이 "특별한 종류의 null"또는 "특별한 종류의 GetProgramType"을 반환하지 않습니다. 그것들은 존재하지 않는다. Instead, it returns null and as a side effect puts a matcher on a stack. matcher를 확인할 때 Mockito는 스택을보고 비어 있거나 (모든 인수가 같은지 확인하십시오) 또는 확인중인 호출의 인수의 수와 정확히 같은지 확인합니다 (즉, 각각에 대해 일치 자 논의).
여기서 일어나는 일은 번 방법을 사용하는 사람이 callService
예상보다 많다는 것입니다.
String expectedString = Matchers.anyString(); // DOESN'T WORK
// Instead, this just adds a matcher to the stack, almost certainly where it
// doesn't belong.
을 ... 또는 마지막 방법 조롱 :
// Assume getProgramService.otherMethod is final.
when(getProgramService.otherMethod(anyString())).thenReturn(123L);
// This actually calls getProgramService.otherMethod(null) and leaves an
// anyString matcher on the stack without setting any expectation that
// would returns 123L.
일시적으로,이 문제가 확인 추가하려면를 개발자가 실수로 지역 변수의 정규 표현을 저장하려고하면 나는이 자주 참조
Mockito.validateMockitoUsage();
이 인위적으로 정합 기의 스택을 확인하고 가능성이 그 라인에 예외가 발생합니다 : 하나의 직전이 문장은 당신이 기록했다. 그렇다면 코드 위의 위의 코드를 확인하십시오. 어쨌든 질문에 주변 코드를 추가하면 디버깅에 도움이 될 것입니다.