Как написать Jasmine Test Cases для HamBurger Icon click в JavaScript? - PullRequest
1 голос
/ 18 апреля 2019

Я пытаюсь написать контрольные примеры для функции javascript, которая при щелчке мыши меняет иконку меню на перекладину, расширяет панель навигации и закрывает при нажатии на перекладину.

navbar.jsp

<div id="menuIconID" class="navbar-toggler" data-toggle="collapse" 
      data-target="#main-nav-collapse" onclick = "myFunction(this)">
        <div class="bar1"></div>
        <div class="bar2"></div>
        <div class="bar3"></div>
</div>

Файл CSS

.bar1, .bar2, .bar3 {
    width: 35px;
    height: 5px;
    background-color: #333;
    margin: 6px 0;
    transition: 0.4s;
}

.change .bar1 {
    -webkit-transform: rotate(-45deg) translate(-9px, 6px);
    transform: rotate(-45deg) translate(-9px, 6px);
}

.change .bar2 {
    opacity: 0;
}

.change .bar3 {
    -webkit-transform: rotate(45deg) translate(-8px, -8px);
    transform: rotate(45deg) translate(-8px, -8px);
}

функция файла js

function myFunction(x) {
  x.classList.toggle("change");
}

Жасмин тестовый файл

describe("The Menu Icon ", function(){
    var spyEvent;
    beforeEach(function(){
        myFunction(x);
    });

    it("should change the icon to crossbar", function(){
        spyEvent = spyOnEvent('#menuIconID','click');
        $("#menuIconID").trigger("click");
        expect('click').toHaveBeenTriggeredOn('#menuIconID');
        expect(spyEvent).toHaveBeenTriggered();

    });
});

Я действительно не знаю, как написать тестовые примеры для этого, и я получаю ошибка при запуске файла.

The Menu Icon should change the icon to crossbar
ReferenceError: x is not defined in http://localhost:8234/spec/testMenuToggler.js (line 17)
@http://localhost:8234/spec/testMenuToggler.js:17:3
attemptSync@http://localhost:8234/webjars/jasmine/jasmine.js:1886:9
Expected event [object Object] to have been triggered on #menuIconID
stack@http://localhost:8234/webjars/jasmine/jasmine.js:1577:17
buildExpectationResult@http://localhost:8234/webjars/jasmine/jasmine.js:1547:14
expectationResultFactory@http://localhost:8234/webjars/jasmine/jasmine.js:638:18
Spec.prototype.addExpectationResult@http://localhost:8234/webjars/jasmine/jasmine.js:330:29
addExpectationResult@http://localhost:8234/webjars/jasmine/jasmine.js:588:16

Пожалуйста, помогите, почему я получаю эту ошибку и с решением. Заранее спасибо.

...