如何测试 AngularJS 服务中的循环
How to test a loop inside an AngularJS service
我正在尝试测试服务,但我不知道如何测试内部循环。是否可以使用 host.lenght===1 以不同于模拟 url that return host.length=1 的方式测试用例。我是否必须在服务中调用 Fake 我的所有代码来测试它?另外如何测试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(" ");
}
在这种情况下,使用 URL 看起来最简单,它会给您这种行为。在我看来,这也将是一个更好的测试,因为它将实际测试代码的意图,而不是仅仅确保调用某些方法。毕竟,这段代码是为了应对不同类型的 URL 而编写的,为什么不完全用它来测试它们呢?
您已经对此 url 进行了测试:'http://angular.com/about'
。对于您正在谈论的情况,您可以使用 'http://angular/about'
然后 'http://www.angular.com/about'
来测试剥离 www.
部分的代码。
我正在尝试测试服务,但我不知道如何测试内部循环。是否可以使用 host.lenght===1 以不同于模拟 url that return host.length=1 的方式测试用例。我是否必须在服务中调用 Fake 我的所有代码来测试它?另外如何测试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(" ");
}
在这种情况下,使用 URL 看起来最简单,它会给您这种行为。在我看来,这也将是一个更好的测试,因为它将实际测试代码的意图,而不是仅仅确保调用某些方法。毕竟,这段代码是为了应对不同类型的 URL 而编写的,为什么不完全用它来测试它们呢?
您已经对此 url 进行了测试:'http://angular.com/about'
。对于您正在谈论的情况,您可以使用 'http://angular/about'
然后 'http://www.angular.com/about'
来测试剥离 www.
部分的代码。