1

ナンシーモジュールをテストしようとすると、次のようになります。

StructureMap例外コード:205InstanceKey"Nancy.Testing.Fakes.FakeNancyModule"の要求されたインスタンスプロパティ"modulePath"がありません

これが私のテストです:

public class when_a_user_logs_in_successfully
{
    static Browser _browser;
    static BrowserResponse _response;

     Establish context = () =>
         {
            var bootstrapper = new BlurtsBootsrapper();
            _browser = new Browser(bootstrapper); //throws exception here
        };

     Because of = () => _response = _browser.Get("/Login", with => with.HttpRequest());

     It should_return_a_successful_response = () => _response.Body.ShouldNotBeNull();
}

これが私のBlurtsBootstrapperです:

public class BlurtsBootsrapper : StructureMapNancyBootstrapper
{
    protected override void ApplicationStartup(StructureMap.IContainer container, Nancy.Bootstrapper.IPipelines pipelines)
    {
        base.ApplicationStartup(container, pipelines);

        container.Configure(x => x.AddRegistry<BlurtsRegistry>());
    }        
}
4

2 に答える 2

2

私は同じ問題に遭遇し、私のために働いた答えに私を導いたこの投稿を見つけました

ブートストラップで、次を追加します。

container.Configure(x => {
    x.SelectConstructor(()=>new FakeNancyModule());
    x.AddRegistry<BlurtsRegistry>();
})

少なくとも、これStructureMapBootstrapper自体が更新されるまでは機能するはずです。

于 2011-12-15T20:14:30.897 に答える
0

0.10 では、オーバーライドしてこれを行う必要がありますConfigureRequestContainer(IContainer container, NancyContext context)

次のようになります。

protected override void ConfigureRequestContainer(IContainer container, NancyContext context)
{
    container.Configure(x =>
    {
        x.SelectConstructor(() => new FakeNancyModule());
    });
    base.ConfigureRequestContainer(container, context);
}

彼らは、0.11 で修正しようとしていると言いました。

https://github.com/NancyFx/Nancy.Bootstrappers.StructureMap/issues/8

于 2012-03-12T18:18:14.507 に答える