Javascript 茉莉花不';我好像没在叫我的方法

Javascript 茉莉花不';我好像没在叫我的方法,javascript,jasmine,jasmine-jquery,Javascript,Jasmine,Jasmine Jquery,我是茉莉花的新手,似乎正在努力让我认为是仙女标准的东西运行 我正在通过一个fixture加载一个HTML文件,并试图在dom上调用对元素的单击。我希望这会导致调用我尝试测试的JS文件的方法。当我尝试在开发人员工具中调试这个时,应该在我的js文件中调用的方法永远不会遇到断点。因此,我假设没有调用代码,因此不会切换展开/折叠类 我的测试: describe("userExpand", function () { beforeEach(function () { loadFixtures('u

我是茉莉花的新手,似乎正在努力让我认为是仙女标准的东西运行

我正在通过一个fixture加载一个HTML文件,并试图在dom上调用对元素的单击。我希望这会导致调用我尝试测试的JS文件的方法。当我尝试在开发人员工具中调试这个时,应该在我的js文件中调用的方法永远不会遇到断点。因此,我假设没有调用代码,因此不会切换展开/折叠类

我的测试:

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="">&nbsp;</div>
        <div class="collapsed col-md-1">&nbsp;&nbsp;</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');
});