9

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

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

在 AngularJS 中进行测试驱动开发时,人们会经历怎样的思考过程?

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

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

当我完成这个过程时,我会经历哪些代码组件?

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

4

3 回答 3

5

FWIW,您可以浏览我的 Pluralsight 课程之一的示例代码。这是我编写的第一个 AngularJS 项目,我使用了 Jasmine 和 Karma 的测试驱动开发。

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

由于我的代码库基于angular-seed,因此我的存储库中的前许多提交是来自 angular-seed 的提交。我的第一个提交是这个

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

于 2014-03-07T19:59:19.027 回答
3

我绝对愿意纠正这一点,因为我不是专家,但我的经验是从路由器开始实际上更容易,因为我经常更了解应用程序必须提供的路线比什么都重要。

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

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

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

于 2014-04-15T02:19:32.943 回答
0

我也是编写 AngularJS 应用程序的新手,但我在开发的代码中遵循严格的 TDD 循环。我发现 Angular 是我最喜欢的用于进行测试的 JS 框架之一,因为它似乎是围绕测试的思想设计的

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

我喜欢上面提到的 Mark 代码中的布局。我写了一些关于我在 TDD 循环中使用 AngularJS 的经验

于 2014-08-04T18:28:49.390 回答