0

I'm writing some unitTest for a class that its name is NetworkRequest. In this class, I have a function that its name is run.

public void run(NetworkResponseListener listener) {
        if (listener == null)
            return;

        this.mListener = listener;

        CheckInternetAccess.checkInternetAccess(manager, new NetworkStateListener() {
            @Override
            public void onInternetResponse(int internetCode) {

                if (internetCode == ErrorCodes.CODE_HAS_INTERNET_ACCESS) {
                    runRequest();
                } else {
                    mListener.onNetworkResponse(null);
                }

            }
        });

    }

I want to create a test when the input listener(NetworkResponseListener) be null.

I wrote something like below:

public class NetworkRequestTest {

    private ReceivedRequest receivedRequest = Mockito.mock(ReceivedRequest.class);
    private ConnectivityManager connectivityManager = Mockito.mock(ConnectivityManager.class);
    private NetworkStateListener networkStateListener = Mockito.mock(NetworkStateListener.class);

    @Test
    public void checkInternetAccessShouldNotCallWithNullListener() {
        NetworkRequest networkRequest = new NetworkRequest(receivedRequest, connectivityManager);//SUT

        networkRequest.run(null);

        Mockito.verify(CheckInternetAccess.checkInternetAccess(connectivityManager, networkStateListener), Mockito.never());
    }
}

I want to check verification of CheckInternetAccess.checkInternetAccess But I got an error that says:

Wrong 1st argument type. Found: 'void', required: 'java.lang.Void'
Ehsan
  • 2,676
  • 6
  • 29
  • 56
  • Possible duplicate of [Mocking static methods with Mockito](https://stackoverflow.com/questions/21105403/mocking-static-methods-with-mockito) – tynn Jun 26 '19 at 07:55

1 Answers1

0

Try using Mockito.verifyZeroInteractions(...) on your mock objects.

Tidder
  • 1,126
  • 1
  • 7
  • 15