2012-05-23 14 views
9

देता है मेरे पास एक साधारण नैन्सी मॉड्यूल है। मैं हैंडलर को क्वेरी स्ट्रिंग (क्यू-एस) पैरामीटर में पास करना चाहता हूं। अगर मेरे पास कोई क्यू-एस पैरा नहीं है तो सबकुछ ठीक है। जैसे ही मैं एक param जोड़ता हूं तो मुझे 404 स्टेटस कोड वापस आ जाता है।नैन्सीएफएक्स: क्वेरी स्ट्रिंग पैरामीटर के साथ रूट हमेशा 404 नोटफॉउंड

NancyModule

public class SimpleModule : NancyModule 
{ 
    public SimpleModule() 
    { 
     Get["/"] = parameters => HttpStatusCode.OK; 
    } 
} 

यूनिट टेस्ट - पासेस

[Fact] 
public void SimpleModule__Should_return_statusOK_when_passing_query_params() 
{ 
    const string uri = "/"; 
    var response = Fake.Browser().Get(uri, with => with.HttpRequest()); 
    response.StatusCode.ShouldBe(HttpStatusCode.OK); 
} 

यूनिट टेस्ट - विफल

[Fact] 
public void SimpleModule__Should_return_statusOK_when_passing_query_params() 
{ 
    const string uri = "/?id=1"; 
    var response = Fake.Browser().Get(uri, with => with.HttpRequest()); 
    response.StatusCode.ShouldBe(HttpStatusCode.OK); 
} 

धन्यवाद

उत्तर

16

आप यूआरएल पर क्वेरी में उत्तीर्ण नहीं होते हैं, बजाय ब्राउज़र संदर्भ

var result = browser.Get("/", with => { 
    with.Query("key", "value"); 
}); 
+4

पर .Query विधि का उपयोग मैं यह नहीं कह सकते हैं कि यह बहुत है SDHP। –

+0

@ tom.dietrich इस क्यूस ने एक साल पहले पोस्ट किया था और तब से व्यवहार बदल गया है ताकि यह – TheCodeJunkie

+1

काम करता है, जो पिछले हफ्ते एक ही चीज़ में भाग लेने पर ऐसा प्रतीत नहीं होता था। –

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