2015-12-31 66 views
-1

所以我很新的测试用例,我有一个小问题(具体到我的情况)。单元测试与Karma的角度应用程序

我目前正在开发一个Angular应用程序,并开始用Karma(Mocha/Chai)进行单元测试。 该应用程序的后端是一个节点RESTful API。 所以基本上,应用程序是一些控制器和服务进行一些基本的增删改查操作。

在创建新用户时,我使用angular的form指令处理html表单中的验证。在服务器端,还有对收到的对象进行验证。 所以一般我的控制器功能再没有其他的东西,如:

create() { 
    UserService.create(vm.newUser).then(callBackToDisplaySuccessOrErrorMessage); 
} 

它可能听起来很傻,但我在这个领域(测试用例)新和我是一个有点困惑,所以我的第一个问题是:

由于http调用被嘲笑,在应用程序中执行单元测试(如我的)有什么意义?

我的第二个问题是:

如何单元测试基本的应用程式,例如在我的情况以适当的方式?

+0

测试控制器的要点是检查您的控制器是否调用了预期的服务,并带有预期的参数,并对正确的成功/错误作出反应。对服务进行单元测试的重点是检查它是否发送了预期的HTTP请求以及正确的URL和正文,并将成功/错误结果正确地传送给其调用者。但是进行单元测试并不意味着您不应该进行集成(a.K; a。端到端)测试,以验证该应用作为一个整体按预期工作。 –

回答

1

澄清你的疑惑: 1.嘲笑是用来测试沟通。 在为您的控制器编写规范时,他们更感兴趣的是验证是否使用预期的参数调用userService.create。同样,你会嘲笑来自服务的回应(如果有的话)。因此,您已验证Controller与Service的通信功能。

现在当你编写服务规范时,是的http调用被模拟,但你仍然在验证http url,期望的方法被调用像GET,POST等参数传递。您只嘲笑预期的成功/失败响应并验证您的处理程序的相同。

相关问题