V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
talent
V2EX  ›  程序员

如何给 Web App 写测试代码?

  •  
  •   talent · 2016-04-26 21:42:57 +08:00 · 2153 次点击
    这是一个创建于 2923 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前一直体会不到测试(如单元测试)的重要性,直到进入现在的项目组。这边流程很规范,所有新 feature 甚至改一个 bug/issue 都需要补相应的测试。最近在做 framework 版本升级,升级后网站会有很多 warning 甚至 error 。这时候如果测试覆盖率高的话,基本对照着 fail 的测试查找相应位置然后修改就行了,不像以前没有测试时还需要一个页面一个页面去检查。

    我们组现在做了两种测试: Unit Test 跟 Integration Test 。

    Unit Test 是针对最小单位 component 做一些相应 properties 跟 methods 的测试;
    Integration Test 听上去像是集成测试,其实只是在浏览器里把 app 启动起来,然后模拟点击测试整个 flow 是否 work 。页面数据也不是来自真实后端,而是来自像 pretender 这样的 fake server 和一些 mock data 。 fake server 的行为尽量模拟后端 API 的行为, mock data 则是根据跟后端商量的 API contract 来写。

    不知道我们做的这种 Integration Test 算不算真正意义上的集成测试?另外貌似还有 Functional Test (感觉跟我们做的这两类有重合之处)?或者大家在实际项目 /side project 中有什么经验,也请不吝赐教。
    2 条回复    2016-04-27 17:07:06 +08:00
    beginor
        1
    beginor  
       2016-04-27 07:53:58 +08:00 via Android
    看起来你需要的是 karma 和 Protractor ,看看 angularjs 指南的测试 https://docs.angularjs.org/guide
    talent
        2
    talent  
    OP
       2016-04-27 17:07:06 +08:00
    @beginor 谢谢,不过我的问题是如何写测试代码(如是否需要访问真实数据),还有写怎样的测试代码( Unit ? Integration ? etc.),而 Karma 只是一个 runner , Protractor 的 e2e 测试我觉得跟我们现在做的 Intergration Test 差不多是一个意思。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4012 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:17 · PVG 13:17 · LAX 22:17 · JFK 01:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.