我刚刚开始尝试对 Meteor 使用速度测试。我在尝试测试我的路线时遇到了障碍。我不能让它与 Jasmine 或 Mocha 一起使用:
(仅将软件包 iron:router、velocity:html-reporter、coffeescript 和 sanjo-jasmine 添加到默认的流星应用程序中。)在 /tests/jasmine/client/integration/router-test.coffee 中:
describe "Route", ->
describe "non-existing", ->
it "should not run green", ->
Router.go "foo"
expect(Router.current().url).toEqual("/foo")
describe "existing", ->
it "should run green", ->
Router.go "bar"
expect(Router.current().url).toEqual("/bar")
在 /client/router.coffee 中:
Router.route "bar"
在默认的 html 文件中:
<template name="bar">
<p>Yeah.</p>
</template>
如果我Router.go("bar")
在 JS 控制台中运行,它可以正常工作:Router.current().url
输出/bar
。但是,在记者中,我收到以下错误:
Expected 'http://localhost:64927/?jasmine=true' to equal '/bar'.
这意味着路由器确实找到了路线“栏”,但导航似乎没有以相同的方式运行。更奇怪的是,当我导航到 时http://localhost:64927/?jasmine=true
,我的浏览器会以某种神奇的方式跳转到http://localhost:64927/bar
。
有任何想法吗?
此外,我注意到有时测试运行绿色,尽管 JS 控制台上存在未捕获的异常。由于这些错误往往只会破坏测试功能的执行,并且不会处理任何断言,因此在测试框架中这是一件非常危险的事情。知道如何应对吗?