मैं इस जावा SpringBoot की क्लास के लिए एक परीक्षण लिखने के लिए कोशिश कर रहा हूँ का उपयोग कर कॉल:नकली वस्तु विधि वसंत बूट और Mockito
विशेष रूप से, मैं कोशिश कर रहा हूँ "नकली" इस विधि कॉल : मैं "नकली" ServiceUtils
वस्तु क्रम में यह करने के लिए करना चाहिए
URI uri = util.getServiceUrl("product");
मैं पता लगा।
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ProductCompositeServiceApplication.class)
public class ProductCompositeIntegrationTest {
@InjectMocks
@Autowired
private ProductCompositeIntegration productIntegration;
@Autowired
private RestTemplate restTemplate;
@Mock
private ServiceUtils util;
private MockRestServiceServer mockServer;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mockServer = MockRestServiceServer.createServer(restTemplate);
}
@Test
public void myTest() {
Mockito.when(util.getServiceUrl("product")).thenReturn(URI.create("http://localhost:8080/test"));
ResponseEntity<Iterable<Product>> products = productIntegration.getAllProducts();
}
}
लेकिन इस तरह से यह अभी भी मूल ServiceUtils
वस्तु कहता है, और नहीं "मज़ाक उड़ाया" एक: मैं इस का उपयोग कर @Mock
और @InjectMocks
एनोटेशन की कोशिश की। एनोटेशन के बिना ProductCompositeIntegration
पर भी कोशिश की, लेकिन इसके परिणामस्वरूप NullPointerException
में परिणाम हुआ।
मैं क्या गलत कर रहा हूं?
@SpringBootApplication
@EnableCircuitBreaker
@EnableDiscoveryClient
public class ProductCompositeServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ProductCompositeServiceApplication.class, args);
}
}
ServiceUtils
उद्देश्य यह है कि मैं उपहास करने के लिए एक कक्षा में निर्दिष्ट किया जाता है कोशिश कर रहा हूँ, स्प्रिंग के @Component
एनोटेशन के साथ एनोटेट यह @Autowired
का उपयोग अन्य वर्गों में सुई:
मेरा मुख्य वर्ग इस तरह दिखता है ।
मुझे आपका दृष्टिकोण पसंद आया। मुझे ठीक इसी की तलाश थी। – user2957378