Reputation: 203
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
Upvotes: 1
Views: 1714
Reputation: 10972
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
}
}
Upvotes: 1