我正在尝试使用 jasmine 和 guard 为我的 rails 3.2 应用程序测试基于 ember 的前端。为此,我使用 jasminerice 和guard-jasmine,phantomjs。设置非常简单,我可以运行一些示例规范。当谈到玩 ember 时,事情变得很疯狂。我有下面的规范来测试视频阅读器类。调用 loadVideo 方法时,应该将 videoHeight 和 videoWitdh 属性设置为对应的视频 DOM 元素的值。当我在浏览器上运行 jasmine 时,测试通过了,但是当我使用 guard 和 phantomjs 运行它时,它失败了。我得到“期望未定义等于 640”。在 phantomjs 上运行测试时,似乎我的 DOM 元素没有考虑在内。
describe "VideoReader", ->
it "loads video from video DOM element", ->
videoDOM = Ember.$("<video width='640' height='480'><source src='/test.mp4'></source></video>")[0];
player = Topper.VideoReader.create();
player.loadVideo(videoDOM);
videoHeight = player.get('videoHeight');
videoWidth = player.get('videoWidth');
expect(videoHeight).toEqual(480);
expect(videoWidth).toEqual(640);
我的规范写对了吗?