好的 - 我喜欢NancyFx。使用这几行编写Web应用程序真是太棒了!
但是如何在单位级别上测试你的NancyModules?
请注意,我知道Nancy(Nancy.Testing on NuGet)提供的excellent testframework,它提供了测试整个(几乎)应用程序堆栈的绝佳方法。但现在我指的是用于以TDD方式充实我的NancyModule内容的单元级别测试。
由于路由是在构造函数中定义的,通常与构成整个动作的lamda表达式一起,因此单元测试感觉有点“无法访问”。但是,我是否错过了关于如何测试路线行为的明显错误?
例如,如何对这个简单的应用程序进行单元测试?
public class ResouceModule : NancyModule
{
private IProductRepository _productRepo;
public ResourceModule(IProductRepository repo) : base("/products")
{
Get["/list"] = parameters => {
return View["productList.cshtml", repo.GetAllProducts()];
};
}
}
看到那里 - 现在我在测试之前编写了生产代码...... :)关于如何开始测试的任何建议?
答案 0 :(得分:12)
您可以使用我们提供的测试工具对第一个开发人员进行测试:
好的,所以你不是只是测试模块,但是如果你看一下调用堆栈,那么在你开始路线之前或之后没有多少事情发生,所以它并不是那么大在我的书中处理:-)如果你确实想要完全隔离地测试模块,那么你可以自己构建它并相应地戳出各个路径(它们只是模块中的字典)。
答案 1 :(得分:4)
作为Nancy.Testing的一部分,您可以使用可配置的bootsrapper来控制设置,包括IoC设置。这应该能够在没有较低级别依赖性的情况下测试模块,并启用TDD。