Я развил признательность за разработку через тестирование, изучая кодирование. Однако я писал только тесты RSpec. В последнее время я больше внимания уделяю JavaScript и понял, что мало знаю о Mocha, Jasmine или любых других средах тестирования JavaScript.
Ниже приведен базовый тест RSpec.
describe ClassName do let(:example) { ClassName.new("Example") } it 'is an instance of the class ClassName' do expect(example).to be_an_instance_of(ClassName) end end
Блок describe
используется для указания класса или метода, для которого предназначен тест. Переменная объявляется с помощью let
, что является одним из различных способов объявления переменной в тестах RSpec. Затем в блоке it
указывается ожидаемое поведение тестируемого объекта, экземпляра класса в этом примере. Как правило, это должно читаться как правильное предложение. Наконец, expect
используется с сопоставителем, чтобы определить ожидание теста. Это выглядит так
В настоящее время я пытаюсь изучить Node.js, и это познакомило меня с некоторыми базовыми тестами Mocha. Я был удивлен, насколько похожи тест и язык.
var expect = require('chai').expect var arr = [1,2,3,4,5] describe('arr', function() { it('length', function(){ expect(arr).to.have.length(5) done() }) })
Язык, используемый для теста Mocha, идентичен языку тестов RSpec. Поведение также похоже, но способ их вызова отличается. В тестах Mocha describe()
и it()
принимают строку и функционируют как аргументы. Тест должен определить аргумент done
, чтобы Mocha знал, что этот тест закончен. Еще одно большое различие между RSpec и Mocha — это утверждения. Тесты Mocha должны импортировать модули из библиотеки утверждений. Популярным является чай. Это позволяет ожидать испытания. Это также написано аналогично RSpec, но с немного другим синтаксисом для сопоставителей.