3

この例外がスローされた理由がわかりません...単体テストがあります:

[Test]
public void Should_return_status_ok_when_route_exists()
{
    // Given
    var bootstrapper = new DefaultNancyBootstrapper();
    var browser = new Browser(bootstrapper);

    // When
    var result = browser.Get("/", with =>
                                        {
                                            with.HttpRequest();
                                        });
    // Then
    Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);

}

ブラウザー変数の割り当て中に、スタック トレースに従って Nancy Bootstrapper 基本クラスで例外がスローされました。

System.InvalidOperationException : シーケンスに複数の要素が含まれています

at System.Linq.Enumerable.SingleOrDefault(IEnumerable`1 source)
at Nancy.Bootstrapper.NancyBootstrapperBase`1.GetRootPathProvider() in NancyBootstrapperBase.cs: line 558
at Nancy.Bootstrapper.NancyBootstrapperBase`1.get_RootPathProvider() in NancyBootstrapperBase.cs: line 172
at Nancy.Bootstrapper.NancyBootstrapperBase`1.GetAdditionalInstances() in NancyBootstrapperBase.cs: line 514
at Nancy.Bootstrapper.NancyBootstrapperBase`1.Initialise() in NancyBootstrapperBase.cs: line 242
at Nancy.Testing.Browser..ctor(INancyBootstrapper bootstrapper) in Browser.cs: line 39
at Tests.Tests.Should_return_status_ok_when_route_exists() in Tests.cs: line 34
4

3 に答える 3

1

Nancy.Hosting.Self を参照するプロジェクトでテストしたときに同じことを経験しました。

私の回避策は、CustomBootstrapper を作成し、RootPathProvider プロパティをオーバーライドすることです。

    class TestBootStrapper : DefaultNancyBootstrapper{
    protected override IRootPathProvider RootPathProvider {
        get {
            return new FakeRootPathProvider();
        }
    }
}
于 2013-06-05T07:35:51.573 に答える