问题
已知有一段动态获取到的JS程序的文本字符串str,有什么工具或框架可以在JS程序中检测执行str后的输出。比如DOM的改变、控制态的输出等。
可以理解为类似Jest的jsDom单元测试。但是这种测试只能在控制台上输入jest指令才可以进行测试。而不能在项目中import jest。
我用了一个最简单的代码实现我想要的功能,但是这种方法十分笨重且无法扩展。
<div id="id"></div>
<script>
function checkCode(jsCode) {
// 执行这段代码
eval(jsCode);
// 检查预期结果
if (document.getElementById('id').innerHTML.indexOf('abc') != -1) {
return true;
} else {
return false;
}
}
// 动态获取到JS代码
let jsCode = "document.getElementById('id').innerHTML = 'abc';"
// 检查代码是否是符合预期
console.log(checkCode(jsCode));
</script>