Ember 让您有能力从第一天起就编写测试并保持高生产力。您可以确信您的应用程序在今天以及未来几年内都是正确的。问题仍然是:应该如何编写测试?
由于测试是 Ember 框架和开发周期的核心部分,我们将专门用几个章节来学习如何编写测试。
在本章中,我们将介绍为什么测试很重要,以及如何运行、调试和筛选您的测试。
为什么我需要测试?
如果您想向用户和利益相关者保证您的应用程序(无论大小)在任何时候都能按预期运行,编写测试是必要的一环。应用程序越大,手动测试的成本就越高,且越容易出错。
编写测试也是一项有趣的活动,是日常交付功能之外的一种调剂,也是帮助您重构代码和作为开发人员自我提升的一种方式。测试还可以作为“活文档”——这是让新开发人员快速上手的关键要素。
如何运行测试
您有几种运行测试的方法。
首先,您可以在终端输入命令 npm test 来运行测试套件。这将使用 package.json 中 scripts.test 条目指定的测试命令运行一次套件。
在运行本地开发服务器(通过 npm start)时,您可以访问 /tests URI。这将渲染 tests/index.html 模板。当您更改应用程序中的文件时,它也会自动更新。
# Run all tests once
npm test
如何筛选测试
当您启动开发服务器并导航到 /tests 时,您将看到 QUnit 界面。在该页面的顶部,您会看到一个 Filter 输入框,您可以使用它来运行较小部分的测试。
您还可以点击 QUnit 界面中列出的任何测试旁边的 Rerun 链接,仅重新运行该特定测试。如果您正在开发单个组件,并希望在开发该组件时仅运行相应的单元测试或集成测试,这会特别有用。
如何调试测试
当您在编写测试或应用程序代码时,测试可能会执行失败。
要找出问题所在,您可以在代码中添加 debugger 来检查中间状态。您可以将此行添加到测试代码和应用程序代码中。
得益于 Ember 的设置,您还可以使用 pauseTest() 和 resumeTest() 来调试您的测试。pauseTest 允许您轻松检查 DOM,但只能在测试代码中使用。
只需在您的测试代码中添加 await pauseTest();,然后保存。当测试到达这一行时,它会暂停,允许您检查应用程序的状态。完成后,在浏览器控制台中输入 resumeTest() 以继续测试。
总结
Ember 将测试视为一等公民。此外,它还提供了各种内置功能来运行、筛选和调试测试。
在下一节中,我们将了解哪些工具可以帮助您进行测试,以及如何开始使用它们。