Rjk*_*Rjk 5 javascript unit-testing typescript
我有一个基于带有装饰器的打字稿的应用程序,用于一些便利的属性分配,并想知道如何为它们编写单元测试。
export function APIUrl() {
return function (target: any, key: string) {
let _value = target[key];
function getter() {
return _value;
}
function setter(newValue) {
_value = getApiURL();
}
if (delete target[key]) {
Object.defineProperty(target, key, {
get: getter,
set: setter
});
}
};
}
Run Code Online (Sandbox Code Playgroud)
在我有的规范类中,
it("should return url string", ()=> {
@APIUrl();
let baseURL:string;
expect(baseURL typeOf string).toBe(true)
})
Run Code Online (Sandbox Code Playgroud)
由于装饰器只是函数,我建议像任何其他函数一样测试它们。并且仅当您确实需要时,添加一个测试来展示如何将装饰器与类/成员/...
这是一个这样的测试示例:
import test from 'ava';
import { APIUrl } from './path';
const decorate = new APIUrl();
test.before(t => {
let obj = { someProp: 'foo' };
decorate(obj, 'someProp');
t.context.foo = obj;
});
test('should return original value', t => {
t.is(t.context.foo.someProp, 'foo');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5397 次 |
| 最近记录: |