这里有一些理论问题。
我正在遵循官方angular.io documentation来测试正在执行http请求的服务,并且到目前为止,我已经成功实现了我的规范。
我不了解的是我们在这里实际测试的内容,前提是我指定了应该从请求中接收回的模拟数据。
不同地说,我将如何使该测试失败?
HttpClientModule
在内部所做的使该测试值得实施的是什么?
别误会我,我是第一个提倡单元测试的人,我只是不明白我们从这种特定类型的规范中获得了什么价值。
非常感谢您的宝贵时间。
干杯。
答案 0 :(得分:0)
这是为了确保您的服务在调用方法时能够进行HTTP调用,并且您可以使用“ GET / POST / PUT”等来验证所调用的HTTP。
根据文档:
Angular的HTTP测试库专为一种测试模式而设计,其中应用程序首先执行代码并发出请求。
然后,测试期望某些请求已经发出或尚未发出, 针对这些请求执行断言,最后提供 通过“冲洗”每个预期的请求进行响应。
最后,测试可能会验证该应用程序是否未发生意外情况 请求。
因此,如果您的服务具有方法submitData
,则该方法会将数据放入Rest Service。然后,在这种情况下,您的测试应验证submitData是否确实执行了该操作。例如:
service.submitData(myRequestObj).subscribe(() => {
expect(http.put).toHaveBeenCalled();
expect(http.put).toBeCalledWith('service-url');
});
话虽如此,如果您想嘲笑,监视和测试服务,或者没有太多价值,则可以忽略不计。