AT.info ПОСИДЕЛКИ  vKontakte   facebook группа  
xUnit

Разбор и критика примера использования Selenium Webdriver + NUnit + C#

Вот вы, значит, сидите себе спокойно, кофе попиваете, на кнопочки кликаете, и тут к вам залетает ваш взмыленный руководить проекта/начальник/тим лид или генеральный директор и говорит:

Нам нужна автоматизация тестирования,
а то без нее никак, все развалится,
а будет – дадим тебе синьйора с бонусами!

Ну, значит, сидите вы после этого замотивированный то ли негативно, то ли позитивно, в общем – неважно, но важно то, что "работу-то нужно работать". Оглянулись вы по сторонам, а вокруг на проекте – Дикий Запад, в кого не плюнь, все на C# и .NET пишут. Да, и вы вспомнили, что когда-то то ли на C#, то ли на ASP.NET что-то делали. И совсем недавно какой-то слух прошел, что вышел Selenium Webdriver 2, который, говорят, лучше первой версии и все на нем, значит, автоматизацию и готовят. 

 Тут вы забиваете в Гуугл заклинание: selenium webdriver c# tutorial

Google поиск по словам selenium webdriver c# tutorial 

И получаете страницу вполне релевантных результатов, надеясь найти там хорошие примеры по автоматизации. Вот самая первая ссылка вполне подходит:  Selenium Two Tutorial using C#/NUnit and InternetExplorerDriver

В этой статье я хотел бы показать, как подключить Selenium  и написать первый тест. Все бы было хорошо, но! Обратите внимание на то, что пример этот показывает, как Селениум подключить и гугл автоматизировать, но этот пример не показывает, как правильно нужно тесты писать. Давайте рассмотрим этот пример теста более детально:

Watir: Базовые стили написания тестов. Использование библиотеки Rspec. Часть 3

Третья часть серии уроков по написанию тестов с использованием Watir.

Написание тестов с использованием библиотеки Rspec

RSpec – библиотека для написания тестов по BDD методикам. Номенклатура RSpec более развита чем xUnit. Что позволяет писать более «читабельные» тесты.

Test => Example (Тест => Пример)

Ключевое слово test заменяется на пример. Пример описывается в simple english форме, что выполняет даный тест.

Assertions => Expectations (Проверка => Ожидание)

Слово проверка заменяется на Ожидание. Для ожидания используются ключевые слова Should и should_not.

Для начала использования нужно уставноить Gem библиотеку RSpec. Для этого выполним

gem install rspec

Последняя версия RSpec не работает с Ruby версией 1.8.6, поэтому тесты будут приводиться для Ruby версии 1.8.7

Сразу посмотрим на пример RSpec теста и разберемся в коде

Watir: Базовые стили написания тестов. Часть 2

Данный урок является продолжением урока Watir: Базовые стили написания тестов. Часть 1
Сценарий теста так же взят из предыдущего урока.

Написание тестов через test unit

Перепишем описанный выше пример с использованием библиотеки TestUnit. TestUnit используется для написания unit тестов в Ruby. Данная библиотека относится к семейству инструментов xUnit и включает всевозможные assert методы  для более мощной валидации тестов. Установка дополнительных модулей не требуется.

Для начала нужно добавить все необходимые библиотеки

# Required in ruby 1.8.7
require 'rubygems'
# Watir IE driver
require 'watir'
# Test Unit library
require 'test/unit'

Далее начинаем использовать все прелести ООП.

Создаем наш тестовый класс, который унаследован от Test::Unit::TestCase

class WatirTestUnit < Test::Unit::TestCase      
# fill in Test Case methods here
end

И задаем первую тестовую функцию.

def test_GoogleSearchEngine       
# fill in method body with Watir code and assertion here
end

Слово test, перед началом метода – ключевое. Интерпретатор будет запускать данный метод как TestUnit тест. Запуск тестов производится в алфавитном порядке. Если вы хотите самостоятельно указывать порядок запуска тестов, стоит добавить префиксы к названию тестов. Например test_01_newtest, test_02_newtest. Избегайте нумерации 1,2,3,4,5,6,7,8,9,10,11 … Так как интерпретатор запустит тесты в порядке 1,10,11,2,3,4...

Переходим к добавлению assert методов. Watir поддерживает обвертки для assert методов под специфические задачи. Например

assert(@ie.contains_text("Watir, pronounced water"))

Методы setup и teardown зарезервированы для TestUnit . Если вы хотите использовать функциональность setup метода, чтобы выполнить действия перед тестом. Или teardown, после теста. Просто добавьте их в тест, как на примере

def setup  
# fill in code that will run before every test case here
end
def teardown  
# fill in code that will run after every test case here
end

RSS-материал