2011-05-03 14 views
5

मेरे पास एक परिदृश्य है जहां ExceptionMapper का उपयोग आरएएसटीईसी 2.0.1.GA का उपयोग कर जेएक्स-आरएस में किया जाता है। यह सब ठीक काम करता है।RESTeasy + सर्वर मॉक + अपवाद मैपर नहीं मिला

अब मैं रीस्टेसी के mock mechanism का उपयोग कर पूरी चीज का परीक्षण करना चाहता हूं। दुर्भाग्य से मेरा अपवाद मैपर-प्रदाता पंजीकृत नहीं है। मैं क्या खो रहा हूँ?

POJOResourceFactory factory = new POJOResourceFactory(SomeWebResource.class); 

Dispatcher dispatcher = MockDispatcherFactory.createDispatcher(); 
dispatcher.getRegistry().addResourceFactory(factory); 

MockHttpRequest request = MockHttpRequest.get("url"); 
MockHttpResponse response = new MockHttpResponse(); 

// here my exception is thrown 
dispatcher.invoke(request, response); 

// but I expect the response to be 404 (which works outside the mock setup) 
Assert.assertEquals(response.getStatus(), 404); 

उत्तर

10

ठीक है, मुझे समाधान मिला। ExceptionMapper मैन्युअल रूप से पंजीकृत करने की आवश्यकता है:

dispatcher.getProviderFactory().addExceptionMapper(SomeExceptionMapper.class); 
+8

नोट: addExceptionMapper() की दृश्यता को बाद के संस्करणों में संरक्षित करने के लिए बदला गया था। dispatcher.getProviderFactory()। रजिस्टरप्रोवाइडर (SomeExceptionMapper.class) इसके बजाए काम करता है। –

संबंधित मुद्दे