【发布时间】:2020-03-12 21:56:35
【问题描述】:
我的任务是为其他人实现的某些组件执行测试。我尝试不对他们的代码进行更改,但我发现这很难,因为他们将所有方法都设为私有,而且他们发出 HTTP 请求并在方法内订阅它,这让我很难弄清楚最好的测试场景是什么.这是一个例子:
private getProfile() {
this.http
.get('go/profile/get', {withCredentials: true})
.subscribe((profile: Profile) => {
this.user.profile = profile;
this.updateLineMsgs();
});
}
总结一下:
我可以测试私有方法还是必须更改其范围?
这种情况下最好的测试场景是什么?
【问题讨论】:
-
1.不,但您可以使用该私有方法测试组件。 2. 将组件测试为黑盒,通过模拟 http 后端,如 HttpClient 指南中所述:angular.io/guide/http#testing-http-requests
-
测试副作用 - 大概更新方法有什么作用?您还可以测试用户属性是否已更新。
-
@JBNizet 1- 是的,但我不知道如何测试私有方法,我使用了测试平台,但我仍然无法从规范文件中访问它。
-
您不需要访问它,只需模拟调用它的条件(例如单击按钮)。
标签: angular httprequest angular-test