html - 未捕获的类型错误 : Cannot read property 'env' of undefined

标签 html unit-testing jasmine environment-variables typeerror

我使用的是 jasmine 1.2.0,它运行良好。现在我使用相同的代码,一切都和以前一样,唯一的区别是我转移到 jasmine 2.0.1,现在它不起作用......所有测试都失败了,我得到的错误是:“Uncaught TypeError:无法读取未定义的属性“env”。

这是 SpecRunner.html 文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jasmine Spec Runner</title>

<link rel="stylesheet" href="../app/bower_components/bootstrap/dist/css/bootstrap.css"/>
<link rel="stylesheet" href="../app/bower_components/font-awsome/css/font-awesome.css"/>
<link rel="stylesheet" href="../app/bower_components/datetimepicker/jquery.datetimepicker.css"/>
<link rel="stylesheet" href="../app/css/style.css"/>
<link rel="stylesheet" href="../app/bower_components/bootstrap-multiselect/dist/css/bootstrap-multiselect.css"/>
<link rel="stylesheet" href="../app/bower_components/bootstrap-select/dist/css/bootstrap-select.css"/>
<script type="text/javascript" src="../app/bower_components/jquery/dist/jquery.js"></script>
<script type="text/javascript" src="../app/bower_components/underscore/underscore.js"></script>
<script type="text/javascript" src="../app/bower_components/backbone/backbone.js"></script>
<script type="text/javascript" src="../app/bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script type="text/javascript" src="../app/bower_components/moment/moment.js"></script>
<script type="text/javascript" src="../app/bower_components/handlebars/handlebars.js"></script>
<script type="text/javascript" src="../app/bower_components/datetimepicker/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="../app/bower_components/backbone-tastypie/backbone_tastypie/static/js/backbone-tastypie.js"></script>
<script type="text/javascript" src="../app/bower_components/bootstrap-multiselect/dist/js/bootstrap-multiselect.js"></script>
<script type="text/javascript" src="../app/bower_components/bootstrap-select/dist/js/bootstrap-select.js"></script>
<script type="text/javascript" src="../app/bower_components/backbone.localstorage/backbone.localStorage.js"></script>

<link rel="shortcut icon" type="image/png" href="jasmine-2.0.1/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="jasmine-2.0.1/jasmine.css">
<script type="text/javascript" src="jasmine-2.0.1/jasmine.js"></script>
<script type="text/javascript" src="jasmine-2.0.1/jasmine-html.js"></script>
<script type="text/javascript" src="jasmine-2.0.1/boot.js"></script>
<script type="text/javascript" src="sinon.js"></script>


.
.
.


<!-- include spec files here... -->
.
.
.

<script type="text/javascript">
    (function () {
        var jasmineEnv = jasmine.getEnv();
        jasmineEnv.updateInterval = 1000;

        var htmlReporter = new jasmine.HtmlReporter();
        var oldResult = htmlReporter.reportRunnerResults;

        jasmineEnv.addReporter(htmlReporter);

        /* this is just for our automated tests */
        window.jasmine_phantom_reporter = new jasmine.ConsoleReporter;

        jasmineEnv.addReporter(jasmine_phantom_reporter);
        /*   */

        jasmineEnv.specFilter = function (spec) {
            return htmlReporter.specFilter(spec);
        };

        var currentWindowOnload = window.onload;
        window.onload = function() {
            if (currentWindowOnload) {
                currentWindowOnload();
            }
            execJasmine();


        };

        function execJasmine() {
            jasmineEnv.execute();
        }

    })();
</script>

</head>

<body>


</body>
</html>

最佳答案

我会确保您包含的 sinon.js 将支持 jasmine 2.0,因为 jasmine 在 2.0 版本中的工作方式发生了重大变化。此外,查看 upgrade guide帮助您将现有规范转换为适用于 2.0。

另一方面,从 2.0 开始,boot.js 文件应该完成内联脚本 block 中的所有工作,因此不再需要它了。

关于html - 未捕获的类型错误 : Cannot read property 'env' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26973129/

相关文章:

html - Bootstrap 导航栏宽度大于视口(viewport)

html - Safari 中的输入字段未对齐

algorithm - 如何测试哈希函数?

unit-testing - -Djava.net.preferIPv4Stack=true 在 jmeter 中添加这个?

angular - 单元测试 : No provider for "InterceptableStoreFactory" even if added to "providers"

javascript - 我收到 [object object] 但我想在 "value"变量前面添加一个复选标记按钮

html - Div 不会触及屏幕的边缘

node.js - 如何触发Express错误中间件?

javascript - 如何使用 Jasmine 监视值属性(而不是方法)

unit-testing - 在服务单元测试中使用 ngMock 模拟 $http 调用