何时使用 createSpy、createSpyObject 和 spyOn?
When to use createSpy, createSpyObject and spyOn?
最近了解到spyOn不能和外部依赖一起使用,只能和System Under Test一起使用。
但我有一些关于为什么它不能使用的问题,我想出的答案很少。
所以我想知道我们应该使用它们的最佳实践。
jasmine.createSpy可以在没有窥探功能的时候使用。它将像 spyOn 一样跟踪调用和参数,但没有实现。
jasmine.createSpyObj 用于创建一个将监视一个或多个方法的模拟。它 returns 一个对象,每个字符串都有一个 属性 作为间谍。
你应该在对象上有一个方法 spyOn.The spyOn 的优点是你可以调用原始方法
当我们需要监视一个函数时,我们可以使用jasmine.createSpy,例如
let router = { navigate: jasmine.createSpy("navigate") },
这里我们使用 jasmine.createSpy
创建间谍功能
jasmine.createSpyObj 用于创建间谍 class/obj,它具有方法,例如
let service = jasmine.createSpyObj("ApiService", ["getData"])}
这里的ApiService是class有getData功能的
最近了解到spyOn不能和外部依赖一起使用,只能和System Under Test一起使用。
但我有一些关于为什么它不能使用的问题,我想出的答案很少。
所以我想知道我们应该使用它们的最佳实践。
jasmine.createSpy可以在没有窥探功能的时候使用。它将像 spyOn 一样跟踪调用和参数,但没有实现。
jasmine.createSpyObj 用于创建一个将监视一个或多个方法的模拟。它 returns 一个对象,每个字符串都有一个 属性 作为间谍。
你应该在对象上有一个方法 spyOn.The spyOn 的优点是你可以调用原始方法
当我们需要监视一个函数时,我们可以使用jasmine.createSpy,例如
let router = { navigate: jasmine.createSpy("navigate") },
这里我们使用 jasmine.createSpy
创建间谍功能jasmine.createSpyObj 用于创建间谍 class/obj,它具有方法,例如
let service = jasmine.createSpyObj("ApiService", ["getData"])}
这里的ApiService是class有getData功能的