1

我已经为我的应用程序设置了 jasmine 测试。在我的应用程序中,我有不应在 IE8 中工作的 javascript:

var foo = Object.create(Array.prototype);

当我运行 mvn jasmine:bdd 并在 Internet Explorer 中打开测试页面(browserMode 设置为 Internet Explorer 8)时,它按预期失败:

TypeError: Object doesn't support property or method 'create'

但是,当我运行时:

mvn jasmine:test -DbrowserVersion=INTERNET_EXPLORER_8

我所有的测试都是成功的。日志指定 browserVersion 设置为 INTERNET_EXPLORER_8。

我希望两者都能给我相同的结果。这导致我们的 ci 测试出现问题,因为它释放了我想要捕获的 js 错误。

这是否应该按我的预期工作,如果没有,我应该改变什么?

此外,这是我知道如何测试多个浏览器的最佳方式。有没有更好的方法让我想念?

编辑

一位同事试图打破我对 browserVersion 甚至不会捕获此类错误的希望,并建议它只是为了更改标头,以便测试也可以涵盖特定于浏览器的 javascript(仅在浏览器是特定版本)。这是准确的吗?

4

1 回答 1

0

jasmine 测试 browserVersion 属性似乎非常准确,它不会改变 js 运行方式的内部结构,这意味着不会测试怪癖或每个浏览器。我已成功过渡到使用 js-test-driver 进行测试,它可以在实际浏览器上运行 jasmine 测试。这看起来是正确的方法。虽然如果你是在这条道路上开始新的,我会看一下 Karma(以前称为 testacular,并作为对 js-test-driver 的改进而构建)。

于 2013-11-08T17:08:03.917 回答