मेरे पास जर्सी संसाधन है जिसे मैं जुनीट के साथ परीक्षण करना चाहता हूं। संसाधन Guice प्रदाता का उपयोग करता है कुछ क्षेत्रों सुई:यूनिट परीक्षण जर्सी संसाधन गुइस इंजेक्शन वाले फ़ील्ड
@Path("/example/")
class ExampleResource {
@Inject
Provider<ExampleActionHandler> getMyExampleActionHandlerProvider;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<ExamplePojo> getExampleList() {
ExampleActionHandler handler = getMyExampleActionHandlerProvider.get();
handler.doSomething();
...
यह सब खूबसूरती से काम करता है जब कोई वास्तविक सर्वर का उपयोग कर एपीआई सेवा करने के लिए, हालांकि परीक्षण यह समस्याग्रस्त है।
public class ApiTest extends JerseyTest {
public ApiTest() throws Exception {
super();
ApplicationDescriptor appDescriptor = new ApplicationDescriptor();
appDescriptor.setContextPath("/api");
appDescriptor.setRootResourcePackageName("com.my.package.name");
super.setupTestEnvironment(appDescriptor);
}
@Test
public void testHelloWorld() throws Exception {
String responseMsg = webResource.path("example/").get(String.class);
Assert.assertEquals("{}", responseMsg);
}
}
जाहिर है, Guice तो ExampleResource
में खेतों प्रारंभ करने में कि handler.doSomething()
कॉल एक NullPointerException नहीं होती तो संभव अवसर नहीं मिल रहा है:
मेरा परीक्षण वर्ग वर्तमान में तरह दिखता है।
क्या जर्सी को गिसिस का उपयोग करके उदाहरण संसाधन स्रोत को तुरंत चालू करने का कोई तरीका है ताकि प्रदाता काम करता हो?
साथ इसे से ApplicationDescriptor वस्तु मिल मैं जानता हूँ कि यह एक छोटी सी देर हो चुकी है, लेकिन बंद मौका पर आप अभी भी इस को देख रहे हैं, तुम क्या कर खत्म किया? – talon8
@minichate क्या आपको यह काम मिल गया? –