我有以下规格(使用 Machine.Specifications 或 mSpec):
public class when_a_user_logs_in_successfully
{
static Browser _browser;
static BrowserResponse _response;
Establish context = () =>
{
var bootstrapper = new ConfigurableBootstrapper();
_browser = new Browser(bootstrapper);
};
Because of = () => _response = _browser.Get("/Login", with => with.HttpRequest());
It should_return_a_successful_response = () => _response.Body.ShouldNotBeNull();
}
规范中的路由应该找到以下模块:
public class LoginModule : NancyModule
{
public LoginModule()
{
Get["/Login"] = parameters => "test";
}
}
但由于某种原因,响应的状态为“NotFound”,并且 Body 抛出异常,表示流已关闭/处置。我的规格解决方案引用了包含 LoginModule 的程序集。我还应该做什么才能使规范找到模块中的路由?
这是因为您没有对其他程序集的任何“硬引用”(即您没有直接使用其中的任何类型),因为 .Net 不会加载它,Nancy 也找不到它。
我们有一个 AppDomainAssemblyTypeScanner,您可以使用它来加载程序集(其中有一些方法可以用来加载一组通配符 DLL),或者您可以通过将主程序集中的一种类型的变量添加到您的测试组件。
我认为将来我们必须更改测试运行程序以加载默认情况下可以找到的每个 DLL,并且可以选择在导致问题时进行更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)