Ionic测试之 TDD 测试开发流程

翻译于国外收费教程,如果有不对请指正

Test Development Cycle

讨论Test Driven Development的标准流程时,列了如下几点:

  1. 为想要实现的功能写一个test
  2. 检查一下,这个test失败了
  3. 实现代码来满足这个test
  4. 重复上述过程

过程很简单,但当你头一次创建项目,想要开始写第一个测试的时候,却又没有任何头绪。我要先build啥呢?我要写什么test呢?怎样为一个还不存在的东西写test呢?

通常,可以从一个我们想要实现的指定需求开始。然后走如下的流程:

  1. 为一些指定的需求写一个e2e test
  2. 检查这个e2e test 失败了
  3. 基于这个e2e test的失败信息,决定为了通过测试需要实现什么功能
  4. 为3中决定要实现的功能写一个单元测试
  5. 检查一下unit test失败了
  6. 实现代码来通过unit test
  7. 检查一下此时e2e test通过了没
  8. 如果e2e测试通过了,回到第1步。如果没通过,回到第3步

当构建你的APP时,持续的走这个流程。你的需求决定了你的e2e test, 同时e2e test又决定了unit test。努力让unit test通过,最终e2e test也会通过。一般来说,在e2e test通过之前你需要通过多个不同的unit test(注意,因为e2e test是同时test多个组件,每个组件都有各自的uinit test)。

上述的流程获取已经让你明白了不少,但有可能你还会好奇如何精确地为不存在的东西写一个test。最简单的想法就是—写出你期望他们如何工作的测试。 如果我正在写一个关于doSomething方法的 unit test,就像它已经存在一样,然后我在我的test中调用它。当然,如果不存在,test跑起来的时候就会报错,这些错误会让我们知道,为了通过test,哪些功能需要实现。

Deciding What to Test First

当非要指出要先test什么时,会有点儿尴尬,尤其当你是个testing新手。通常,我喜欢会列出所有我想要创建的e2e test(比如app的需求),然后选择最接近app核心的test。想一下我们将要构建的app的需求,并列下来,然后我来更深入地讲解选择的标准。举个栗子:

  • 用户可以看到课程模块列表
  • 选择一个模块后,用户可以看到可用课程的列表
  • 选择一个课程后,用户可以看到这个课程的内容
  • 一个用户只能用合法的license key来登录app
  • 没有登录时,直接显示登录视图给用户

这些需求没有特定的顺序。这个课程软件的核心—展示课程给用户,所以考虑如下需求:

  • 一个用户只能用合法的license key来登录app

用户首先要做的是登录到app,但是与app的核心功能并没有半毛钱关系。访问控制在任何类型的app中都会有,也是我们偏向于稍后处理的东西。

一下的需求与核心功能相关性更强些:

  • 用户可以看到课程模块列表
  • 选择一个模块后,用户可以看到可用课程的列表
  • 选择一个课程后,用户可以看到这个课程的内容

这些需求关系到呈现课程列表给用户。第一步就是显示课程模块列表给用户,因此首先test它是很有必要的。

最后,你选择优先test什么并不重要。重要的是不要被这个决定阻碍,如果你不确定先选哪个好,就随便挑一个吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,908评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,217评论 25 708
  • 自己一直因为英文发音不标准,不敢教孩子说英文,当然自己的英文水平也不咋地。以前上大学的时候,被同学嘲笑有家乡味,其...
    成长的美好时光阅读 1,407评论 2 2
  • 昨晚在学校饭堂吃饭,刚好碰到一位学妹,于是就跟她聊了几句。 从她的口中,得知她不想留在院学生会了。 我不由得感到了...
    Tom怒阅读 1,756评论 1 2
  • 凌晨几许 一本蓝皮书的指引 我来到往日的天台 初夏的鸟鸣 总能带来一丝风雨 远在他乡的人 能否能接收我的思绪 似心...
    A落花零韵阅读 238评论 0 0