javascript – 使用ng-describe进行端到端测量与量角器

前端之家收集整理的这篇文章主要介绍了javascript – 使用ng-describe进行端到端测量与量角器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近发现了一个令人敬畏的 ng-describe软件包,它使AngularJS应用程序的单元测试非常透明,通过抽取所有必须记住/查找和写入的样板代码来加载,注入,模拟或间谍.

有人试图用量角器来描述吗?这是否有意义,我们可以从中受益吗?

引起我兴趣的事情之一是您可以轻松地嘲笑HTTP响应:

  1. ngDescribe({
  2. inject: '$http',// for making test calls
  3. http: {
  4. get: {
  5. '/my/url': 42,// status 200,data 42
  6. '/my/other/url': [202,42],// status 202,data 42,'/my/smart/url': function (method,url,data,headers) {
  7. return [500,'something is wrong'];
  8. } // status 500,data "something is wrong"
  9. },post: {
  10. // same format as GET
  11. }
  12. },tests: function (deps) {
  13. it('responds',function (done) {
  14. deps.$http.get('/my/other/url')
  15. .then(function (response) {
  16. // response.status = 202
  17. // response.data = 42
  18. done();
  19. });
  20. http.flush();
  21. });
  22. }
  23. });

模拟HTTP响应通常有助于实现更好的e2e覆盖,并测试UI对特定情况的反应以及错误处理如何工作.这是我们正在使用的protractor-http-mock,还有other options看起来不像ng-describe那么简单.

解决方法

量角器主要用于E2E测试(使用硒鼓webdriver),这意味着您需要具有实际的后端连接(也可以是模拟后端).量角器的创始人写了 here,您的应用程序代码与测试代码分开运行,并且无法轻松访问$http服务.

通过嘲笑后端调用,即使您使用的是E2E测试工具(如量角器),您也不会进行E2E测试.为什么不返回单元测试呢.唯一的区别是,您将使用jQuery代替Protractor API,测试将使用Karma运行.然后,您可以轻松地使用ng-describe和$httpBackend,主要用于单元测试.

但是,如果你想继续这种方法,你可以检查这个Protractor issue的意见.有几个人正在为这个问题提出解决方案,如上所述,你已经在使用其中的一个.但在这种情况下,ng-describe不会帮助你.

我希望这回答你的问题.

猜你在找的JavaScript相关文章