【发布时间】:2016-04-05 05:48:09
【问题描述】:
所以我对测试用例很陌生,我有一个小问题(具体到我的案例)。
我目前正在开发一个 Angular 应用程序并开始使用 Karma (Mocha/Chai) 进行单元测试。 这个应用程序的后端是一个节点 RESTful API。 所以基本上,该应用程序是一组控制器和服务,它们进行一些基本的 CRUD 操作。
例如,在创建新用户时,我使用 Angular 的表单指令处理 html 表单中的验证。在服务器端,对接收到的对象也进行了验证。 所以通常我在控制器上的功能不再是这样的:
create() {
UserService.create(vm.newUser).then(callBackToDisplaySuccessOrErrorMessage);
}
这可能听起来很傻,但我是这个领域(测试用例)的新手,我有点困惑,所以我的第一个问题是:
既然 http 调用是模拟的,那么在我的应用程序中进行单元测试有什么意义?
我的第二个问题是:
如何以适当的方式对我的案例中的基本应用程序进行单元测试?
【问题讨论】:
-
测试控制器的重点是检查您的控制器是否使用预期的参数调用预期的服务,并对成功/错误做出正确的反应。对服务进行单元测试的目的是检查它是否发送了具有正确 URL 和正文的预期 HTTP 请求,并将成功/错误结果正确地传输给它的调用者。但是进行单元测试并不意味着您不应该进行集成(也称为端到端)测试来验证应用程序作为一个整体是否按预期工作。
标签: angularjs unit-testing mocha.js karma-runner chai