12

シンプルな Nancy モジュールがあります。クエリ文字列 (qs) パラメーターをハンドラーに渡したいです。qs パラメータがない場合は、すべて問題ありません。パラメータを追加するとすぐに、404 ステータス コードが返されます。

ナンシーモジュール

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);
}

ありがとう

4

1 に答える 1

19

URL でクエリを渡すのではなく、ブラウザ コンテキストで .Query メソッドを使用します。

var result = browser.Get("/", with => {
    with.Query("key", "value");
});
于 2012-05-23T13:16:08.793 に答える