hda*_*zhu 10 getter-setter jasmine typescript
当我进行单元测试时,我的getter是Typescript的setter,我无法找到一种方法来监视那些getter和setter.而是立即评估对象.我正在使用Jasmine进行单元测试.
Lao*_*jin 13
spyOnProperty 现在可以在Jasmine中找到:
const foop = {
get value() {},
set value(v) {}
};
it('can spy on getter', () => {
spyOnProperty(foop, 'value', 'get').and.returnValue(1);
expect(foop.value).toBe(1);
});
it('and on setters', () => {
const spiez = spyOnProperty(foop, 'value', 'set');
foop.value = true;
expect(spiez).toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)
目前尚不支持,但支持 getters存在 Jasmine 问题。
如果您现在确实需要支持,您可以扩展SpyRegistry.js文件并添加apsillers提出的代码:
this.spyOnProperty = function(obj, methodName, accessType) {
...
var desc = Object.getPropertyDescriptor(obj, methodName);
if(desc[accessType]) { // "get" or "set" exists on the property
var spy = j$.createSpy(methodName, desc[accessType]);
desc[accessType] = spy;
Object.defineProperty(obj, methodName, desc);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7226 次 |
| 最近记录: |