sách gpt4 ai đã đi

javascript - loadStyleFixtures 不会在 Jasmine 测试中加载 css

In lại 作者:塔克拉玛干 更新时间:2023-11-02 20:59:50 hai mươi bốn 4
mua khóa gpt4 Nike

背景是我正在尝试创建一个 very basic thermostat在 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)');
});

样式表如下所示:

thân hình {
background-color: navy;
color: white;
}

#temperature {
color: yellow;
}

setStyleFixtures('#temperature { color: yellow; }') 如果添加到 beforeEach 函数也不起作用。我的补丁是使用 jquery 在 beforeEach block 中添加 css 而不是要求 css 样式表。

非常感谢任何帮助!

编辑:测试间歇性地通过 - 不知道除此之外还有什么问题可能是我的服务器设置或其他问题。

1 Câu trả lời

最后,问题是我在测试的 beforeEach block 中以错误的顺序添加了 Fixtures 和 styleFixtures。

所以这段代码会通过我的测试:

beforeEach(function(){
thermostat = new Thermostat();
jasmine.getStyleFixtures().fixturesPath = './public/css';
loadStyleFixtures('stylesheet.css');
jasmine.getFixtures().fixturesPath = '.';
loadFixtures('temperature_change.html');
});

但这(我的原始代码)不会:

beforeEach(function(){
thermostat = new Thermostat();
jasmine.getFixtures().fixturesPath = '.';
loadFixtures('temperature_change.html');
jasmine.getStyleFixtures().fixturesPath = './public/css';
loadStyleFixtures('stylesheet.css');
});

关于顺序为何重要的原因,我的想法是固定装置自己添加到样式表中,然后再次添加该表。我认为这让 Jasmine 感到困惑,它需要先加载样式表。

我认为间歇性传递是因为 fixture 偶尔会加载缓慢,让样式表有时间先加载,但我不确定这一点。

关于javascript - loadStyleFixtures 不会在 Jasmine 测试中加载 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29674380/

hai mươi bốn 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com