Javascript 茉莉花不';我好像没在叫我的方法
我是茉莉花的新手,似乎正在努力让我认为是仙女标准的东西运行 我正在通过一个fixture加载一个HTML文件,并试图在dom上调用对元素的单击。我希望这会导致调用我尝试测试的JS文件的方法。当我尝试在开发人员工具中调试这个时,应该在我的js文件中调用的方法永远不会遇到断点。因此,我假设没有调用代码,因此不会切换展开/折叠类 我的测试:Javascript 茉莉花不';我好像没在叫我的方法,javascript,jasmine,jasmine-jquery,Javascript,Jasmine,Jasmine Jquery,我是茉莉花的新手,似乎正在努力让我认为是仙女标准的东西运行 我正在通过一个fixture加载一个HTML文件,并试图在dom上调用对元素的单击。我希望这会导致调用我尝试测试的JS文件的方法。当我尝试在开发人员工具中调试这个时,应该在我的js文件中调用的方法永远不会遇到断点。因此,我假设没有调用代码,因此不会切换展开/折叠类 我的测试: describe("userExpand", function () { beforeEach(function () { loadFixtures('u
describe("userExpand", function () {
beforeEach(function () {
loadFixtures('user-expand.html');
//userControl();
//this.addMatchers({
// toHaveClass: function (className) {
// return this.actual.hasClass(className);
// }
//});
});
//this test works ok
it("checks the click is firing", function () {
spyOnEvent($('.expanded'), 'click');
$('.expanded').trigger('click');
expect("click").toHaveBeenTriggeredOn($('.expanded'));
});
//this doesn't
it("checks the click is changing the class", function () {
//spyOnEvent($('.collapsed'), 'click');
var myElement = $('.collapsed');
myElement.click();
expect(myElement).toHaveClass('.expanded');
});
夹具的一部分:
<div class="wrapper">
<div class="row group">
<div class="col-md-1" data-bordercolour=""> </div>
<div class="collapsed col-md-1"> </div>
<div class="col-md-9">None (1)</div>
}()
该代码在正常使用中工作良好,因此我确信我在Jasmine的使用方式中遗漏了一些明显的东西。任何帮助都将不胜感激
更新:
我可以通过在测试中使用调用而不是触发单击事件来触发togglestate方法:
it('checks on click of icon toggles that icon', function () {
var myElement = $('.collapsed');
userControl.toggleState.call(myElement);
expect(myElement).toHaveClass('expanded');
});
这似乎有点奇怪,因为我能找到的所有例子都很满意单击。让我摆脱困境,但我仍然想知道我遗漏了什么。如果没有源代码,很难给出准确的提示。
单击上的是否涉及异步操作?如果是这样,将测试包装在中运行(…);等待(……);运行(…)代码>可以解决此问题。查看如何执行此操作。非常感谢MaDa,我已更新了我的问题,以包含我正在尝试测试的代码。
it('checks on click of icon toggles that icon', function () {
var myElement = $('.collapsed');
userControl.toggleState.call(myElement);
expect(myElement).toHaveClass('expanded');
});