Javascript的代码执行与测试

问题

已知有一段动态获取到的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>