Почему Jasmine называется средой тестирования «BDD», даже если «Given /When /Then» не поддерживается?

Во введении Жасмин говорится:

  

Jasmine - это основанная на поведении среда разработки для тестирования кода JavaScript.

Я прочитал несколько статей BDD, и, похоже, нам следует использовать «Given /When /Then» для определения «сценария», что и делает «огурец». Но в Жасмин я не вижу ни одного из таких методов.

Можем ли мы все еще называть Jasmine средой тестирования "BDD", даже если у нее нет такой концепции?

12 голосов | спросил Freewind 29 72015vEurope/Moscow11bEurope/MoscowSun, 29 Nov 2015 17:59:59 +0300 2015, 17:59:59

2 ответа


0

Я бы описал Jasmine как среду модульного тестирования для javascript, в которой много синтаксического сахара, чтобы мы могли писать наши «тесты» в виде спецификаций, описывающих поведение. В основном мы используем «Дано», «Когда», «Когда», когда мы описываем /определяем общее поведение системы на языке бизнеса. Когда вы описываете компонент системы, использование естественного языка обычно дает меньше преимуществ - большая детализация, необходимая на более низких уровнях абстракции, лучше поддерживается языком программирования.

Теперь модульное тестирование является фундаментальной частью BDD, и jasmine поддерживает это таким образом, что позволяет нам довольно красноречиво указывать поведение, так что да, это определенно может быть инструмент /среда тестирования BDD, даже если он нацелен только на более низкие уровни абстракции. ,

Огурец нацелен только на более высокие уровни абстракции. Тот факт, что он занят разработкой низкоуровневых спецификаций, не делает его менее подходящей средой тестирования BDD (инструмент совместной работы BDD).

Интересным моментом является то, что для создания BDD вам действительно нужны два разных инструмента тестирования: один для выполнения абстракций высокого уровня, а другой для выполнения подробных спецификаций более низкого уровня. Различные инструменты для разных задач, которые являются частью одного и того же процесса.

Наконец, GWT - это просто деталь реализации написания сценариев. Это способ дифференциации

  • настройка состояния G
  • описание действия W
  • изучение последствий действия T
ответил diabolist 1 TueEurope/Moscow2015-12-01T13:56:59+03:00Europe/Moscow12bEurope/MoscowTue, 01 Dec 2015 13:56:59 +0300 2015, 13:56:59
0

Жасмин не запрещает вам использовать метод «когда когда», ниже приведен пример, показывающий два способа использования метода «когда и когда» при использовании жасмина.

describe("Given a string containing 'foo'", function(){
    var someString;
    beforeEach(function() {
        someString = "foo";
    });
    describe("When I append 'bar'", function(){
        beforeEach(function() {
            someString += "bar";
        });
        it("Then the string is 'foobar'", function(){
            expect(someString).toBe("foobar");
        });
    });
    it("When I append 'baz' Then the string is 'foobaz'", function(){
        someString += "baz";
        expect(someString).toBe("foobaz");
    });
});

Найдите стиль, который подходит вам. Вы должны убедиться, что описание теста эффективно описывает то, что вы тестируете. Вы можете использовать предложение типа «когда это тогда» в качестве инструмента, чтобы гарантировать, что описание вашего теста точно о том, что тестируется.

ответил areve 3 PM000000100000004631 2016, 22:37:46

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132