【问题标题】:Difficulty Approaching Test Driven Development in AngularJS using Jasmine and Karma使用 Jasmine 和 Karma 在 AngularJS 中进行测试驱动开发的困难
【发布时间】:2014-04-11 00:24:58
【问题描述】:

我在开始使用 Jasmine 测试框架在 AngularJS 中进行测试驱动开发时遇到了困难。我有丰富的使用 PHPUnit 的经验并且对它非常满意。虽然我还没有发现使用 Jasmine 在 AngularJS 中进行测试驱动开发同样容易。

我阅读过文章和教程、观看过视频、查看过 StackOverflow 问题。我仍然难以获得适当的词流或进入思考过程。

在使用 AngularJS 进行测试驱动开发时,人们会经历什么思考过程?

或者换句话说,在 AngularJS 中进行测试驱动开发时可以使用什么流程?

具体流程有哪些步骤?我是从控制器、视图还是模型开始?

在完成此过程时,我会经历哪些代码组件?

我正在寻找一种可重复的思维过程,以便在各种领域中构建可靠的单元测试应用程序。如果有,请列出具体资源。

【问题讨论】:

    标签: angularjs unit-testing tdd jasmine testing-strategies


    【解决方案1】:

    FWIW,您可以通过my sample code 找到one of my Pluralsight courses。这是我编写的第一个 AngularJS 项目,我使用了 Jasmine 和 Karma 的测试驱动开发。

    为了帮助我完成自己的思考过程,我创建了许多小提交,每当发生有趣的事情时,我都会尝试将其记录在我的提交消息中。您可能需要查看提交以了解我是如何完成它的。

    由于我的代码库基于angular-seed,所以我的存储库中的前许多提交是来自 angular-seed 的提交。我的第一个提交是this one

    我的代码库中可能有很多错误,因为我在学习的过程中不断进步,所以我并不是说这是典型的 AngularJS 代码,但我对此并不太不满意。

    【讨论】:

      【解决方案2】:

      我绝对愿意对此进行纠正,因为我不是专家,但我的经验是,从路由器开始实际上更容易,因为我经常更了解应用程序将要到达的路线必须提供比其他任何东西。

      每条路由都需要一个控制器和一个模板。所以无论是真的,我都会为每条路线设置一个控制器。因此,我可以快速为每个控制器进行测试。并不是说测试一开始会测试很多(可能只是控制器的存在。)您也可以轻松地为路由器编写测试。

      然后可能一次使用一个控制器,为每个预期实现的行为编写测试,然后实现该行为。

      在某个阶段,最好从控制器中抽象出一些行为,将其重构为服务。然后可以测试服务。

      【讨论】:

        【解决方案3】:

        我也是编写 AngularJS 应用程序的新手,但我在开发的代码中遵循严格的 TDD 循环。我发现 Angular 是我最喜欢的用于测试的 JS 框架之一,因为它seems to be designed around the idea of testing

        我个人从端到端测试开始,它可能涉及真实帐户信息(虽然不是真实生产帐户),它描述了我需要从高层次构建的功能。在我对更高级别的测试感到满意后,我将开始为模型创建测试。我尽量在控制器或视图中保留少量逻辑,以便我的模型拥有最多的测试,这些测试通过端到端测试进行验证。

        我喜欢上面提到的 Mark 代码中的布局。 I wrote a little about my experiences using AngularJS in a TDD cycle.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-09-29
          • 2014-05-04
          • 2015-02-20
          • 2020-12-07
          • 2014-09-20
          • 2013-05-15
          • 1970-01-01
          相关资源
          最近更新 更多