मैं अपनी व्यावसायिक सेवा का परीक्षण करने के लिए मॉकिटो का उपयोग कर रहा हूं, और यह एक उपयोगिता का उपयोग करता है जिसे मैं नकल करना चाहता हूं। विभिन्न तर्कों के साथ उपयोगिता के लिए प्रत्येक सेवा विधि में कम-से-कम 2-3 कॉल हैं।विभिन्न पैरामीटर के साथ नकली विधि
क्या एक ही विधि के लिए एकाधिक when(...).thenReturn(...)
का उपयोग करने के लिए कोई अनुशंसित तरीका है लेकिन विभिन्न तर्क?
मैं भी any()
मार्चर का उपयोग करना चाहता हूं। क्या यह संभव है?
अद्यतन: नमूना कोड।
@Test
public void myTest() {
when(service.foo(any(), new ARequest(1, "A"))).thenReturn(new AResponse(1, "passed"));
when(service.foo(any(), new ARequest(2, "2A"))).thenReturn(new AResponse(2, "passed"));
when(service.foo(any(), new BRequest(1, "B"))).thenReturn(new BResponse(112, "passed"));
c.execute();
}
public class ClassUnderTest {
Service service = new Service();
public void execute() {
AResponse ar = (AResponse) service.foo("A1", new ARequest(1, "A"));
AResponse ar2 = (AResponse) service.foo("A2", new ARequest(2, "2A"));
BResponse br = (BResponse) service.foo("B1", new BRequest(1, "B"));
}
}
public class Service {
public Object foo(String firstArgument, Object obj) {
return null; //return something
}
}
यह विरोधाभासी है। यदि आप 'कोई() 'निर्दिष्ट करते हैं, तो आपका मतलब है, लेकिन साथ ही आप नहीं करते हैं?! बस उचित matchers का उपयोग करें। – SpaceTrucker
कृपया मुझे कुछ तरीकों की सलाह दें। मैं पैरामीटर में से किसी एक के लिए ऑब्जेक्ट नहीं बना सकता, इसलिए मैं किसी भी() का उपयोग करता हूं लेकिन बदनाम रूप से मैं काम नहीं करता। मेरा कहना था कि मैं कुछ भी करना चाहता हूं। –