- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
callFake和returnValue的唯一区别是callFake可以根据自定义逻辑(参数/环境)返回不同的值?
还有其他区别吗?
最佳答案
callFake(() => {...}) 接受回调函数
- If we just want a return value when a service method is called then we can use any of
and.callFake
orand.returnValue
组件文件:
@Component(...)
export class DependencyComponent {
constructor(private service: RandomService){....}
.....
sampleMethod() {
return this.service.randomMethod();
}
.....
}
上述组件的单元测试用例:
it('test callFake vs returnValue', () => {
let randomService= new RandomService();
let component = new DependencyComponent(randomService);
spyOn(randomService, 'randomMethod').and.callFake(() => 4)
expect(component.sampleMethod()).toBe(4)
spyOn(randomService, 'randomMethod').and.returnValue(10);
expect(component.sampleMethod()).toBe(10)
})
在上面的例子中,两种方式都是正确的。
- Suppose we are passing a parameter to service method to perform its logic then in that case we have to use
and.callFake((param) => {...})
. Hereparam
parameter will be the argument passed to the spied method.
组件文件:
@Component(...)
export class DependencyComponent {
constructor(private service: RandomService){....}
.....
sampleMethod(val) {
return this.service.randomMethod(val);
}
.....
}
上述组件的单元测试用例:
it('test callFake vs returnValue', () => {
let randomService= new RandomService();
let component = new DependencyComponent(randomService);
spyOn(randomService, 'randomMethod').and.callFake((param) => param+4)
expect(component.sampleMethod(4)).toBe(8);
expect(component.sampleMethod(12)).toBe(16)
})
当执行 component.sampleMethod(4)
时,它将调用 this.service.randomMethod(4)
。由于 randomMethod()
正在使用 and.callFake
进行侦察,因此 4
将作为 and.callFake 的回调函数的参数传递
。
关于javascript - Jasmine :这是 returnValue 和 callFake 之间的唯一区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43839185/
这是聊天机器人的(截取的)代码。我想重写 sendMessage() 函数以仅回显消息参数。在这种情况下,原始函数运行并在函数的第二行给出错误。显然,模块没有加载,我也不需要它们。这是对事件处理程序回
我有一个返回函数引用的方法。 function methodetobeMoked(param){ case1:return func1; case 2: return func2; . .
在我的 Controller 中,我调用了 http 服务。这是我的 Controller : myApp.controller('MyController', function MyControll
我正在尝试创建一个规范来测试我的 Angular 服务中发出 GET 请求的方法。我遇到的困难是模拟该方法以使其返回错误而不是响应。如果我无法让它返回错误(例如 400 或 500),我就无法提供完整
如何在 Sinon 中编写一个调用 Fake 的 spy ,类似于 Jasmine? Jasmine : spyOn(window, "requestAnimationFrame").and.call
我之前在其他 Controller 上编写过一些这样的测试,并且效果很好。但在这个更复杂的 Controller 上,无论我在哪个函数上测试它,使用 $q 的 .callFake 都不会进入 .the
我有一个场景,我想在调用回调后在 beforeEach 上调用 done()。 我尝试按如下方式执行此操作: spyOn(scope, 'onAdmin').and.callThrough().and
我以前在 jasmine 中有 spyOn().and.callFake,它对我的测试有很大帮助,现在我正在使用 Jest,我在文档中发现 jest.spyOn() 存在但没有 callFake。
callFake和returnValue的唯一区别是callFake可以根据自定义逻辑(参数/环境)返回不同的值? 还有其他区别吗? 最佳答案 callFake(() => {...}) 接受回调函数
我正在学习实现 karma & Jasmine在 AngularJS 中,我将通过一些示例来更好地理解它。 我对 callThrough 有点困惑. 如果理解有误,请指正,与callFake()略有相
我是 Jasmine 的新手并且在上述两个功能之间有点混淆。我的唯一目的是为 spy 功能提供虚假实现。但是,如果我把调试器放在 callFake它正在被调用,但是 and.stub的函数没有被调用。
我正在寻找 sinonjs 中的 jasmine.createSpy().and.callFake(fn) 的等价物。 例如: const mySpy = jasmine.createSpy('my
我有以下功能,它使用 promise 和 .finally 进行服务调用: myService.getStuff().then(function() { this.doStuffWhenServ
我正在使用 jasmine 的 new syntax (so no waits, or runs)用于测试异步操作,但遇到了麻烦。 我想做的是确保在模型触发 sync 事件时调用渲染函数。这个例子很简
我想在我的 Jasmine 测试中模拟测试数据。这里有两个版本: // version 1: spyOn(mBankAccountResource, 'getBankAccountData').and
我是一名优秀的程序员,十分优秀!