Javascript 动态创建Mocha测试套件
我正在尝试实现一个应用程序,它将测试配置/用例作为输入(yaml/json)文件,并执行大量断言Javascript 动态创建Mocha测试套件,javascript,testing,automated-tests,mocha.js,Javascript,Testing,Automated Tests,Mocha.js,我正在尝试实现一个应用程序,它将测试配置/用例作为输入(yaml/json)文件,并执行大量断言 case: - operation: fetch_user args: - name: id value: 1 - checks: - attribute: username expected_value: user1 - attribute: email expected_value: user1@test.com 我想编写通用测试块(
case:
- operation: fetch_user
args:
- name: id
value: 1
- checks:
- attribute: username
expected_value: user1
- attribute: email
expected_value: user1@test.com
我想编写通用测试块(it())来动态执行断言
我试过了
我正在index.js中获取用户信息,并在assertion.js文件中拥有断言
index.js
//读取yaml文件
const body=userService.get(userId);
body.then(userResponse=>{
const suite=createTestSuite(“测试”、检查、用户响应);
suite.run();
});
assertion.js
函数createTestSuite(名称、检查、用户响应){
let suite=新套件(“Moch测试”);
addTest(新测试(“检查用户名”),()=>{
expect(userResponse.username).to.equal(checks.expected\u username);
}));
返回套房;
}
--delay
选项应该有帮助()
尝试类似(未经测试)的方法:
//test.js
//使用'mocha--delay test.js运行`
//getData将返回一个承诺,该承诺通过测试数据数组实现
getData()。然后(testData=>{
描述(‘摩卡测试’,功能(){
testData.forEach(数据=>{
它('应该处理数据',函数(){
//这里的断言
});
});
});
run();//这是启动测试运行的全局
});
--delay
选项使测试运行等待,直到您调用run()
,这允许您在定义测试之前执行异步操作(例如,收集一些数据)
Mocha目前不支持异步套件,这使得从异步数据源动态生成测试非常困难