背景是我正在尝试在 javascript 中创建一个非常基本的恒温器,然后使用 jasmine 对其进行测试。
我希望能够测试页面是否加载了某些 css(即恒温器是正确的颜色),然后更新它。检查颜色是否更新的测试通过了,但是第一次检查初始颜色是否正确的测试没有通过。
在控制台中停止测试后,我意识到 css 样式表并未应用于测试 - 尽管它确实可以在普通的本地服务器上运行。这让我觉得我使用 loadStyleFixtures 将 css 放入 jasmine 存在一些问题。
测试看起来像这样:
describe('Display', function(){
beforeEach(function(){
thermostat = new Thermostat();
jasmine.getFixtures().fixturesPath = '.';
loadFixtures('temperature_change.html');
jasmine.getStyleFixtures().fixturesPath = './public/css';
loadStyleFixtures('stylesheet.css');
});
...
it('can start as yellow', function(){
expect($('#temperature').css('color')).toEqual('rgb(255, 255, 0)');
});
Run Code Online (Sandbox Code Playgroud)
样式表如下所示:
body {
background-color: navy;
color: white;
}
#temperature {
color: yellow;
}
Run Code Online (Sandbox Code Playgroud)
setStyleFixtures('#temperature { color: yellow; }') 如果添加到 beforeEach 函数中也不起作用。我的补丁是使用 jquery 在 beforeEach 块中添加 css 而不是需要 css 样式表。
非常感谢任何帮助!
编辑:测试间歇性地通过 - 不知道除此之外还有什么可能是我的服务器设置问题或其他问题。