Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
БЭМ и JavaScript: ТестированиеАлександр ТармоловРазработчик интерфейсовЯ.Субботник, Москва, 8 сентября 2012 года
юнит-тестирование    что такое i-bem__test    как он работает2
Плюсы юнит-тестов3
модульное тестирование    код работает    безопасный рефакторинг    быстрая разработка (потом)    тесты — это документация4
Мифы о юнит-тестах5
юнит-тесты ловят всё    я — крутой программист    тесты — много времени6
Как писать?7
независимые тесты    юнит-тест — один код    тестируем состояния, не код    моки для внешних сервисов8
i-bem__test9
инфраструктура для тестов     тесты — часть БЭM     простое добавление тестов     сборка с помощью bem-make     запуск из ...
Что под капотом?11
12
Новая технология test.js     i-batman.js     i-batman.test.js     Декларативный подход     BEM.TEST.decl(‘i-batman’,      ...
14
BDD     компактный синтаксис     нет зависимостей     много готовых матчеров15
PhantomJS16
headless webkit     DOM, CSS селекторы     очень быстрый     действительно, очень быстрый!17
18
Как это работает?19
Пишем БЭМ-декларацию$ bem create block -t js i-batmanBEM.decl(‘i-batman’, { getName: function () {   return ‘Batman’; }});...
Пишем БЭМ-тест$ bem create block -t test.js i-batmanBEM.TEST.decl(i-batman, function () { var block = BEM.create(i-batman)...
Запускаем$ make testStarted....................Finished in 0.005 seconds.Specs total: 1Failed: 0 22
Тесты не прошли :($ make testStartedFi-batman -> requires proper nameFinished in 0.005 seconds.Specs total: 1Failed: 1http...
make test?TESTS_DIRS ?= blockstest:  $(TESTS_DIRS)$(BEM) make tests  phantomjs     $(PHANTOM_RUNNER)    tests/unit/unit.ht...
pre-commit hookTESTS_DIRS=$(git diff --cached --name-only --diff-filter=ACMR | awk /.js$/{gsub("/[^/]+.js",""); s=s " " $0...
Так просто! Хочу!github.com/tarmolov/bem-bl-test26
Стенд с i-bem__test27
Повторим...28
юнит-тесты — это помощь, а не наказание (но не«серебряная пуля»)i-bem__test — это инфраструктура для создания,сборки и зап...
Александр ТармоловРазработчик интерфейсовhevil@yandex-team.ru@tarmolov
Upcoming SlideShare
Loading in …5
×

0

Share

Download to read offline

Александр Тармолов "БЭМ и JavaScript: Тестирование"

Download to read offline

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Александр Тармолов "БЭМ и JavaScript: Тестирование"

  1. 1. БЭМ и JavaScript: ТестированиеАлександр ТармоловРазработчик интерфейсовЯ.Субботник, Москва, 8 сентября 2012 года
  2. 2. юнит-тестирование что такое i-bem__test как он работает2
  3. 3. Плюсы юнит-тестов3
  4. 4. модульное тестирование код работает безопасный рефакторинг быстрая разработка (потом) тесты — это документация4
  5. 5. Мифы о юнит-тестах5
  6. 6. юнит-тесты ловят всё я — крутой программист тесты — много времени6
  7. 7. Как писать?7
  8. 8. независимые тесты юнит-тест — один код тестируем состояния, не код моки для внешних сервисов8
  9. 9. i-bem__test9
  10. 10. инфраструктура для тестов тесты — часть БЭM простое добавление тестов сборка с помощью bem-make запуск из консоли и браузера10
  11. 11. Что под капотом?11
  12. 12. 12
  13. 13. Новая технология test.js i-batman.js i-batman.test.js Декларативный подход BEM.TEST.decl(‘i-batman’, function () { // // проверки для Бэтмана // } );13
  14. 14. 14
  15. 15. BDD компактный синтаксис нет зависимостей много готовых матчеров15
  16. 16. PhantomJS16
  17. 17. headless webkit DOM, CSS селекторы очень быстрый действительно, очень быстрый!17
  18. 18. 18
  19. 19. Как это работает?19
  20. 20. Пишем БЭМ-декларацию$ bem create block -t js i-batmanBEM.decl(‘i-batman’, { getName: function () { return ‘Batman’; }}); 20
  21. 21. Пишем БЭМ-тест$ bem create block -t test.js i-batmanBEM.TEST.decl(i-batman, function () { var block = BEM.create(i-batman); it(requires proper name, function(){ var batmanName = block.getName(); expect(batmanName).toEqual(‘Batman’); });}); 21
  22. 22. Запускаем$ make testStarted....................Finished in 0.005 seconds.Specs total: 1Failed: 0 22
  23. 23. Тесты не прошли :($ make testStartedFi-batman -> requires proper nameFinished in 0.005 seconds.Specs total: 1Failed: 1http://localhost/tests/unit/unit.html 23
  24. 24. make test?TESTS_DIRS ?= blockstest: $(TESTS_DIRS)$(BEM) make tests phantomjs $(PHANTOM_RUNNER) tests/unit/unit.html 24
  25. 25. pre-commit hookTESTS_DIRS=$(git diff --cached --name-only --diff-filter=ACMR | awk /.js$/{gsub("/[^/]+.js",""); s=s " " $0} END{print s})if [ "$TESTS_DIRS" ]; then make test TESTS_DIRS="$TESTS_DIRS" if [ $? -ne 0 ]; then exit 1 fifi 25
  26. 26. Так просто! Хочу!github.com/tarmolov/bem-bl-test26
  27. 27. Стенд с i-bem__test27
  28. 28. Повторим...28
  29. 29. юнит-тесты — это помощь, а не наказание (но не«серебряная пуля»)i-bem__test — это инфраструктура для создания,сборки и запуска тестовюнит-тесты — еще одна технология в рамках БЭМбыстрое добавление тестов и их запускзапуск тестов из консоля и браузераюнит-тестирование — это очень просто :) 29
  30. 30. Александр ТармоловРазработчик интерфейсовhevil@yandex-team.ru@tarmolov

Views

Total views

1,424

On Slideshare

0

From embeds

0

Number of embeds

543

Actions

Downloads

7

Shares

0

Comments

0

Likes

0

×