2012-06-15 9 views
67

पर एक्सटेंशन विधि का नकल कैसे करें मैं एएसपी.NET एमवीसी 4 आरसी के एपीकंट्रोलर का उपयोग कर रहा हूं और मैं इकाई को एक विधि प्राप्त करने का प्रयास कर रहा हूं।CreateResponse <T> HttpRequestMessage

यह विधि CreateResponse विधि का उपयोग करती है जो HttpRequestMessage पर है, लेकिन मुझे नहीं पता कि यह कैसे नकल करना है या इसे सही तरीके से कार्य करना है।

MediaTypeHeaderValue header = new MediaTypeHeaderValue(versionedSmartBlock.ContentType); 
var response = Request.CreateResponse<SmartBlock>(HttpStatusCode.OK, versionedSmartBlock, header); 

मेरी इकाई परीक्षण के भीतर, मैं एक खाली HttpRequestMessage बनाने:

विधि के शरीर इस में शामिल है

CallsController api = new CallsController(managerMock.Object, config, adapterFactoryMock.Object); 
api.Request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Initiate?ern=%2B44123456789");  
var response = api.Get("+44123456789", null); 

लेकिन यह सिर्फ एक InvalidOperationException उत्पन्न करता है:

अनुरोध नहीं है एक संबंधित विन्यास वस्तु है या प्रदान की गई विन्यास शून्य था।

क्या किसी को भी कोई संकेत मिलता है कि मैं HttpRequestMessage को कैसे कॉन्फ़िगर कर सकता हूं ताकि CreateResponse विधि वास्तव में अपना काम करे?

+1

ऐसा लगता है कि यह एक ही समस्या को संबोधित कर रहा है: http://stackoverflow.com/questions/10868673/asp-net-webapi-unit-testing-with-request-createresponse –

उत्तर

0

वेबएपीआई 1 वीबी यहाँ के साथ से इसका जवाब मिल गया है!

मैं अपने लिंक से संकर प्रतिक्रियाओं में कामयाब ऊपर इस इस के रूप में सरल काम करने के लिए प्राप्त करने के लिए:

Dim request As HttpRequestMessage = New HttpRequestMessage() 
Return request.CreateResponse(HttpStatusCode.BadRequest, myCustomClassObject, GlobalConfiguration.Configuration) 

शायद ज़रुरत पड़े पोस्टिंग यह किसी को भी मदद करता है।