Unit testing 使用Nancy.Testing.Browser过帐时出现ConfigurableBootstrapper错误

Unit testing 使用Nancy.Testing.Browser过帐时出现ConfigurableBootstrapper错误,unit-testing,nancy,Unit Testing,Nancy,我有一个简单的NancyModule,其中声明了一个Post: Post[“/Car/New”]=args=> { Car newCar=this.Bind(); newCar=\u carRepos.CreateNewCar(newCar); 返回Response.AsJson(newCar); }; 从一个视图发布到该视图效果良好: 当我尝试为此路由运行测试时,出现以下错误: System.Exception : ConfigurableBootstrapper Exception

我有一个简单的NancyModule,其中声明了一个Post:

Post[“/Car/New”]=args=>
{
Car newCar=this.Bind();
newCar=\u carRepos.CreateNewCar(newCar);
返回Response.AsJson(newCar);
};
从一个视图发布到该视图效果良好:


当我尝试为此路由运行测试时,出现以下错误:

System.Exception : ConfigurableBootstrapper Exception
  ----> Nancy.RequestExecutionException : Oh noes!
  ----> System.MissingMethodException : Method not found: '!!0 Nancy.ModelBinding.ModuleExtensions.Bind(Nancy.INancyModule, System.String[])'.
Result StackTrace:  
at Nancy.Testing.PassThroughStatusCodeHandler.Handle(HttpStatusCode statusCode, NancyContext context)
at Nancy.NancyEngine.CheckStatusCodeHandler(NancyContext context)
at Nancy.NancyEngine.HandleRequest(Request request, Func`2 preRequest)
at Nancy.NancyEngine.HandleRequest(Request request)
at Nancy.Testing.Browser.HandleRequest(String method, String path, Action`1 browserContext)
at Nancy.Testing.Browser.Post(String path, Action`1 browserContext)
at Shopr.Tests.Cars.CarTests.PostNewCarReturnsCar() in c:\Users\*******\Documents\Visual Studio 2012\Projects\Shopr\Shopr.Tests\Cars\CarTests.cs:line 35
--RequestExecutionException
at Nancy.NancyEngine.InvokeOnErrorHook(NancyContext context, ErrorPipeline pipeline, Exception ex)
--MissingMethodException
at Shopr.Api.Modules.CarsModule.<.ctor>b__3(Object args)
at Nancy.Routing.Route.Invoke(DynamicDictionary parameters)
at Nancy.Routing.DefaultRouteInvoker.Invoke(Route route, DynamicDictionary parameters, NancyContext context)
at Nancy.Routing.DefaultRequestDispatcher.Dispatch(NancyContext context)
at Nancy.NancyEngine.InvokeRequestLifeCycle(NancyContext context, IPipelines pipelines)
这是我的测试引导程序:

public类NancyBootstrapper:ConfigurableBootstrapper
{
公共NancyBootstrapper()
:base(with=>{with.Module();})
{ }
受保护的覆盖无效配置ApplicationContainer(TinyIoCContainer)
{
container.Register(新的FakeData.CarRepository());
}
}

我必须在ConfigurableBootstrapper中执行任何特殊操作才能使绑定正常工作吗?

来自@Jon的检查packages.config的建议是正确的。即使使用相同的方法在几分钟内添加了每个包,测试项目的Nancy版本也比web项目的版本旧。已更新到正确的版本,现在可以正常工作。

再次检查packages.config是否使用了正确的版本

更新:由于这主要来自@StevenRobbins,我拍拍他的背:


如果您得到一个方法缺少异常,或者您没有引用具有汽车类型的部件,听起来好像有一个旧的DLL在运行?清理所有bin/obj文件夹,重建,仍然一样。我的测试项目和nancy web项目都引用了包含汽车类型的核心项目。另外一个测试就是测试Get[/Car/{carid}]也可以。奇数。检查您的packages.config以确保其版本正确?