मैं निम्नलिखित जावा वर्गों है:नेस्टेड विधि Mockito
public class A
{
@Autowired
private B b;
public int aFn()
{
int something = b.bFn();
}
}
public class B
{
@Autowired
private C c;
public int bFn()
{
int something = c.cFn();
}
}
public class C
{
public int cFn()
{
return 231;
}
}
और निम्न परीक्षण Mockito का उपयोग करके उपरोक्त कोड का परीक्षण करने के लिए:
public class test
{
@Autowired
private A a;
private C c;
@Test
public void testA()
{
c = mock(C.class);
when(c.cFn(),anyInt()).thenReturn(something);
assertEquals(0, a.aFn());
}
}
जब मैं टेस्टा डिबग, मुझे लगता है कि असली लगता है सी। सीएफएन() मजाकिया नहीं, निष्पादित हो जाता है। क्या कुछ भी है जो मैं गलत तरीके से कर रहा हूं? कृपया मदद करें!
मैं b.cbn नहीं, c.cfn stub करना चाहता हूं। इसके लिए क्या किया जाना चाहिए? – user1471283
यह एक बुरा अभ्यास है। यूनिट परीक्षणों को दूसरों के अलगाव में एक वर्ग का परीक्षण करना चाहिए। लेकिन अगर आप इसे चाहते हैं, तो एक नकली सी बनाएं, बी बनाएं और इसके अंदर नकली सी इंजेक्ट करें, फिर ए बनाएं और इसके अंदर बी इंजेक्ट करें। 'ए -> बी -> मॉकसी'। –
धन्यवाद। कृपया इसके अनुसार अपना उत्तर संशोधित करें। – user1471283