如何测试AngularJS服务中的循环

时间:2015-12-29 11:20:16

标签: angularjs jasmine spy

我试图测试服务,但我不知道如何测试内部循环。是否可以使用host.lenght === 1以不同于返回host.length = 1的模拟URL的方式测试案例。我是否必须调用我在服务中的所有代码来测试它?另外如何测试isNaN? 这是我的代码:

if (host.length === 1 || !isNaN(host[host.length - 1])) {

     name = a.hostname;

} else {

     if (host[0] === "www") {
          slice = 1;
     }
     name = host.slice(slice, host.length - 1).reverse().join(" ");
}

jsfiddle Demo

1 个答案:

答案 0 :(得分:0)

在这种情况下,只使用一个可以提供此行为的URL看起来最简单。在我看来,这也是一个更好的测试,因为它实际上会测试代码的意图,而不仅仅是确保调用某些方法。毕竟,编写这段代码是为了应对不同类型的URL,为什么不用它来测试它们呢?

您已经对此网址进行了测试:'http://angular.com/about'。对于您正在讨论的案例,您可以使用'http://angular/about'然后使用'http://www.angular.com/about'来测试删除www.部分的代码。