Инструменты пользователя

Инструменты сайта


angular:angularjs:storonnie_moduli:karma:simple_test

Простой теcт

в Unit тетсировании в данном случае будет использоватся принцип AAA(Arrange/Act/Assert)
Arrange выполняет установку тестовых данных перед прохождением каждого теста(этот шаг называется setUp)
Act описывает сами действия которые должен выполнить метод
Assert этап проверки результата выполненных функций и ожидаемого результата теста

describe("First Test", function () {
 
    // Arrange 
    var counter;
 
    beforeEach(function () {
        counter = 0;
    });
 
    it("increments value", function () {
        // Act 
        counter++;
        // Assert 
        expect(counter).toEqual(1);
    })
 
    it("decrements value", function () {
        // Act 
        counter--;
        // Assert 
        expect(counter).toEqual(-1);
    })
});

комментарии в коде служат лишь ориентиром и не выполняют никаких тестовых функций
для выполнения теста повторно после внесения изменений следует просто закрыть окно браузера и karma запустит тесты снова
для debug'a теста следует использовать debugger; в любом участке вашего кода, а затем начать отладку в developer tools вашего браузера
В данном примере используются функции:

  • describe - используется для группировки тестов
  • beforeEach - выполняет функцию setUp
  • it - содержит функционал выполняемого теста, принимает 2 аргумента : 1) названия тестового кейса, 2) функция с тестом
  • expect - идентифицирует результат теста
  • toEqual - выполняет сравнение ожидаемого результата с результатом выполненного теста(expect)

Обычно этап Assert содержит множество функций которые используются для определения точного условия успешного прохождения теста:

  • expect(x).toEqual(val) проверяет содержится ли в х такое же значение как и в val (но не обязательно один и тот же объект)
  • expect(x).toBe(obj) проверяет что х и obj одинаковые объекты
  • expect(x).toMatch(regexp) проверяет что х подходит под определение регулярного выражения
  • expect(x).toBeDefined() проверяет что х определен
  • expect(x).toBeUndefined() проверяет что х не определен (undefined)
  • expect(x).toBeNull() проверяет что х равно null
  • expect(x).toBeTruthy() проверяет что х true
  • expect(x).toBeFalsy() проверяет что х false
  • expect(x).toContain(y) проверяет что х строка которая содержит у
  • expect(x).toBeGreaterThan(y) проверяет что х больше у

Для тестирования ситуаций ожиданием противоположного результата следует использовать приставку not:

  • expect(x).not.toEqual(val)
angular/angularjs/storonnie_moduli/karma/simple_test.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)