简体   繁体   中英

How to mock a function which does not return anything in java

public class Service1 {

private Service2 service2;

// FunctionA
private FuncA(Object1 obj1) {

    /*
    code to make Obj2 from Obj1
    */

    service2.FuncB(obj2);
  }

}

public class Service2 {
  // FunctionB
  private FuncB(Object2 obj) {
    obj.field=value;  
  }

}

I am trying to write Unit Test Case for Func A (as mentioned above) and for that need to mock Func B(as mentioned above). Pls. help how can I do that in Java 7.

Ps. Newbie to Java

You need to set the service2 member in your Service1 class, that you are going to test, to a mock object created by your mocking framework. This could look something like this:

public class Service1Test {

    @Mock
    private Service2 service2;

    @InjectMocks // service2 mock will be injected into service1
    private Service1 service1;

    @Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void doTest() {

        Object someObject = null; // create object matching your needs
        service1.FuncA(someObject);

        Object someOtherObj = null; // create object matching your needs
        verify(service2, times(1)).FuncB(someOtherObj);

        // perform additional assertions
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM