Mar*_*rio 14 javascript unit-testing jasmine
我正在使用Jasmine进行一些测试,尽管这通常可以应用于基于浏览器的javascript单元测试.
我有一个功能,在某些条件下,用户将用户重定向到不同的页面window.location.assign.问题是,如果达到此行,页面将被重定向.在这种情况下,由于它被重定向到'/',页面重新加载,所有测试再次运行.我该怎么做才能测试函数是否到达重定向的行,而不重定向?
Mor*_*len 19
我遇到过同样的问题.我的解决方案是将实际重定向分解为单一目的函数.也就是说,不要做任何条件检查或其他逻辑,只需重定向.说这是旧代码......
function redirect() {
if(something) {
window.location = "/";
else if(somethingElse)
window.location = "/?a=42";
else
window.location = "/derp";
}
Run Code Online (Sandbox Code Playgroud)
我会改变它..
function redirect() {
if(something) {
doRedirect("/");
else if(somethingElse)
doRedirect("/?a=42");
else
doRedirect("/derp");
}
function doRedirect(href) {
window.location = href;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以使用spyOn该doRedirect函数来确保重定向函数传递条件的正确URI.
| 归档时间: |
|
| 查看次数: |
12857 次 |
| 最近记录: |