Я развил признательность за разработку через тестирование, изучая кодирование. Однако я писал только тесты 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, но с немного другим синтаксисом для сопоставителей.