我将如何在Angular中测试此功能?

时间:2018-06-13 01:04:55

标签: angular jasmine protractor automated-tests

如果这不是一个合适的问题我很抱歉,但我在如何在我正在处理的应用程序中实现保存功能的自动化测试时遇到了一些麻烦。我不确定我是应该进行单元测试还是进行测试。用户填写表单中的必填字段,然后单击“保存”按钮。从那里,用户输入的数据被发送到服务器并返回到应用程序的首页;用户数据显示在此页面上。任何正确方向的指导都会很精彩!谢谢。如果它有帮助,我包含了保存用户的代码。同样,我不确定我是否应对它进行单元测试或e2e测试它,考虑到我必须在点击保存之前填写整个表格。再次感谢你。

 saveUser() {
this.user = this.userForm.getRawValue();
var url = AppConfig.URL_AddUser;
var isToEdit = false;

this.user.UserID = this.userId;
console.log(this.user);
this.httpClient.post(url, JSON.stringify(this.user), httpOptions)
  .catch((error: Response | any) => {
    this.showAlertWindow(this.exceptionMessage);
    console.error(error.message || error);
    return Observable.throw(error.message || error);
  })
  .subscribe((res: any) => {
    console.log(res);
    if (res == "DuplicateEmailAddress")
      this.showAlertWindow("This email address is already exists.");
    else if (res == "success")
      this.dialogRef.close({ success: "success", isToEdit: isToEdit });
  });
  }

1 个答案:

答案 0 :(得分:3)

虽然有关测试的意见各不相同,但在这种情况下我建议使用e2e测试。只是时间问题。您可以在不丢失测试覆盖率的情因为您在一次测试中涵盖了逻辑层和表示层。

确实,创建e2e测试可能非常耗时,但无论如何你通常都必须这样做,只要你设计它们至少调用一次所有方法,你就没有错。