javascript - 如何为以下 Angular 方法编写测试用例

标签 javascript angular typescript unit-testing karma-jasmine

我已经创建了一个组件来打开我的自定义类型对话框,我只想为此方法创建 Jasmine 单元测试用例。

export class OpenPopUpComponent implements OnInit {
    constructor(public dialog:NewCustomDialog) {}

    ngOnInit() {

    }

    openModel(){
        this.dialog.open(NewComponent,<NewCustomDialogConfig>{
            size: 'double',
            data: {
                title: 'New Dialog'
            }
        });
    }
}

最佳答案

您不会测试对话框本身。您需要做的是模拟 NewCustomDialog 并将其作为注入(inject)提供。

在你的规范中

beforeEach(() => {
  const spy = jasmine.createSpyObj('NewCustomDialog', ['open']);

  TestBed.configureTestingModule({
    // Provide (spy) dependency
    providers: [
      { provide: NewCustomDialog, useValue: {newCustomDialogSpy} }
    ]
  });
  // Inject both the service-to-test and its (spy) dependency
  masterService = TestBed.get(MasterService);
  valueServiceSpy = TestBed.get(ValueService);
});

然后您可以检查是否已使用参数(您期望的参数)调用了 spy 程序。

关于javascript - 如何为以下 Angular 方法编写测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58663229/

相关文章:

javascript - TypeScript 类 .drawImage

javascript - 从 Javascript 中的提供者 promise 函数返回数据

angular - 类似 promise 风格的顺序可观察对象

javascript - 静态类型的 nodeJS 可能吗?即 typescript

javascript - 为什么更改数组的副本会影响原始数组?

javascript - 使用 Jquery 和 servlet 检索图像不显示图像

javascript - 表单输入未通过 PHP 传递到 mySQL 数据库

javascript - SVG 如何在 HTML 中绘制

angular - 如何使用 switchMap 取消挂起的 http 请求并只接受最后一次订阅?

javascript - Angular 选项卡列表数组保持正确排序