Unit testing 测试一个值是否是一个开玩笑的函数
我有一个JS文件,其中包含一个类。看起来是这样的:Unit testing 测试一个值是否是一个开玩笑的函数,unit-testing,jestjs,Unit Testing,Jestjs,我有一个JS文件,其中包含一个类。看起来是这样的: // testClass.js const loaders = { "model": (arg1)=> { // do something to return models data }, "events": (arg2)=> { // do something to return events data } } export default class TestClass{ con
// testClass.js
const loaders = {
"model": (arg1)=> {
// do something to return models data
},
"events": (arg2)=> {
// do something to return events data
}
}
export default class TestClass{
constructor(config){
this.loader = loaders[config.type] // I want to test this line
}
}
我正在为这个文件编写一个单元测试。在单元测试中,我想检查这个.loader是否设置正确。基本上,我想测试是否将正确的函数分配为this.loader
这是我的单元测试文件
// testClass.test.js
import TestClass from './testClass'
describe('TestClass', ()=> {
test('The constructor sets the loader correctly', ()=> {
const testClassObj = new TestClass({type: 'model'})
expect(typeof testClassObj.loader).toBe("function") // What else can I test apart from the type?
})
})
这里我唯一能测试的是类型
。我正在检查它是否是一个函数
我的问题是:我还可以在这里测试什么?如果期望值是函数,我还需要测试什么呢?对数据
类型和函数名进行断言。此外,您还可以测试loader
函数,并对其进行断言,以验证loader
函数确实是您所需要的,并且执行正确
testClass.js
:
const装入器={
型号:(arg1)=>{
//执行一些操作以返回模型数据
log('do something to return models data');
},
事件:(arg2)=>{
//做一些事情来返回事件数据
},
};
导出默认类TestClass{
构造函数(配置){
this.loader=loaders[config.type];
}
}
testClass.test.js
:
从“/TestClass”导入TestClass;
描述('TestClass',()=>{
test('构造函数正确设置加载程序',()=>{
玩笑间谍(控制台,'日志');
const testClassObj=新的TestClass({type:'model'});
expect(testClassObj.loader的类型).toBe('function');
expect(testClassObj.loader.name).toBe('model');
testClassObj.loader();
expect(console.log).toBeCalledWith('do something to return models data');
});
});
单元测试结果:
通过src/stackoverflow/59352068/testClass.test.js(10.165s)
测试类
✓ 构造函数正确设置加载程序(27毫秒)
console.log node_modules/jest mock/build/index.js:860
执行一些操作以返回模型数据
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:11:273s