Жасминовые тесты в Livescript: конфликт ключевых слов "it"

Я пытаюсь перенести некоторые тесты Жасмин из JavaScript в LiveScript. Одна из функций Жасмин it, Вот пример:

(function(){
  describe("The selling page", function() {
    // bla bla
    it("should display cards.", function() {
        expect(selectedCards.count()).toEqual(1);
    });
});

Итак, я попробовал это в LiveScript:

do !->
  describe "the selling page " !->
   it "should display cards" !->
       expect (selectedCards.count()).toEqual("")

Что компилируется в это:

// Generated by LiveScript 1.3.1
(function(){
   describe("the selling page ", function(it){ // <--- note the "it"
     it("should display cards", function(){
     expect(browser.getTitle().toEqual(""));
});
});
})();

Вы замечаете, что вторая функция принимает "это" в качестве аргумента. Я не нашел документ об этом, но понимаю, что это особенность (если заменить it Функция чем-то еще, это все хорошо. Это дает мне уверенность, что я частично не применяю функцию).

Тем не менее, мне нужно it функция, и я не хочу это в качестве аргумента. Как я могу написать этот фрагмент тогда? Спасибо!

2 ответа

Решение

Вы должны использовать (...) в описании, чтобы избежать добавления дополнительных параметров

Как это:

do !->
  describe "the selling page", (...) !->
   it "should display cards" !->
       expect (selectedCards.count()).toEqual("")

Если вы не против алиасинга it для чего-то еще, вы также можете сделать это:

that = it

do !->
  describe "the selling page " !->
   that "should display cards" !->
       expect selectedCards.count! .to-equal ''

когда it не в функции, он рассматривается как глобальный it,

Другие вопросы по тегам