从Jasmine 1.3迁移到Jasmine 2.0

时间:2014-01-21 12:21:48

标签: unit-testing jasmine

我有一些JavaScript,我正在使用Jasmine进行测试。我想在用户按下“运行测试”时在浏览器窗口中运行测试。使用Jasmine 1.3,我已经使用以下代码成功设置了this JSFiddle

<a href="#" onclick="jasmineEnv.execute()">run tests</a>

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

        var htmlReporter = new jasmine.HtmlReporter();
        jasmineEnv.addReporter(htmlReporter);

        jasmineEnv.specFilter = function (spec) {
            return htmlReporter.specFilter(spec);
        };
        return jasmineEnv;
    })();
</script>

Jasmine 2.0提供了一些我真正需要的新功能。但是,我无法弄清楚如何进行设置,以便在有人点击“运行测试”按钮时运行测试。我正在使用新的boot.js文件。但是,我没有运气。有人可以帮我把这个样本从Jasmine 1.3迁移到Jasmine 2.0吗?

谢谢

2 个答案:

答案 0 :(得分:1)

测试用例执行由以下剪切的文件boot.js触发:

  window.onload = function() {
    if (currentWindowOnload) {
      currentWindowOnload();
    }
    htmlReporter.initialize();
    env.execute();
  };

您可以在boot.js文件本身中修改此实现,以便在函数调用下执行,或者您可以编写受实际boot.js启发的自定义启动代码。

答案 1 :(得分:1)

无法发布此评论作为评论!

jsfiddle中的Jasmine 2.0 http://jsfiddle.net/88Xa6/4/

如@ user3037143所述,初始化在boot.js处理。

确保库文件到位:

<script type='text/javascript' src="/libs/jasmine/2.0.0/jasmine.js"></script>
<script type='text/javascript' src="/libs/jasmine/2.0.0/jasmine-html.js"></script>
<link rel="stylesheet" type="text/css" href="/libs/jasmine/2.0.0/jasmine.css">

<!-- Add any custom reporters (Console / Junit / etc) here. 
     Ensure necessary initialization triggers are set in 
     boot when adding more reporters. -->
<script type='text/javascript' src="/libs/jasmine/2.0.0/boot.js"></script>


您可以选择包含规范,也可以将其定义为内联:

<script src="spec.js"></script>

<script type='text/javascript'>
    describe("My Suite", function() {
        it("Should be true", function() {
            expect(1).toBe(1);
        });
    });
</script>