I ran into a very strange problem.
URL = "/my/specific/url/"; when(this.restHelperMock.post( eq(myEnum), eq(this.config.apiEndpoint() + URL), any(JSONObject.class))).thenReturn(new JSONObject(myDesiredJsonContent));
or even with contains
URL = "/my/specific/url/"; when(this.restHelperMock.post( eq(myEnum), contains(this.config.apiEndpoint() + URL), any(JSONObject.class))).thenReturn(new JSONObject(myDesiredJsonContent));
gives me
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers! 0 matchers expected, 1 recorded: This exception may occur if matchers are combined with raw values: //incorrect: someMethod(anyObject(), "raw String"); When using matchers, all arguments have to be provided by matchers. For example: //correct: someMethod(anyObject(), eq("String by matcher")); For more info see javadoc for Matchers class.
Even if I do not use RAW expressions.
Oddly enough, if I changed the contains method to:
URL = "/my/specific/url/"; when(this.restHelperMock.post( eq(myEnum), contains(URL), any(JSONObject.class))).thenReturn(new JSONObject(myDesiredJsonContent));
dropping the endpoint, it works.
Configuration and RestHelper both mock:
this.restHelperMock = mock(RESTHelper.class); this.config = mock(MyBMWConfiguration.class); when(this.config.apiEndpoint()).thenReturn("http://host:port/api");
The URL with ApiEndpoint is equal to what I wanted to make fun of, even if it werenβt, I should get a NullpointerException, due to false bullying. But here I have no ideas.
Thank you for your responses.