2009-04-07 2 views

ответ

0

Я тестировал сайт ASP с Watir. Если вы ищете способ структурирования тестов, взгляните на WatirCraft framework.

2

Новая версия WatiN 2.0 beta 1 предлагает некоторые базовые классы, которые помогут вам структурировать тестовые классы.

В основном это сводится к классу для каждой страницы (наследующий класс WatiN.Core.Page). В этих классах страниц вы добавляете свойства для каждого элемента управления, к которому хотите получить доступ. Что-то вроде:

public Button OkButton 
{ 
    get { return Document.Button("okbuttonId"); 
} 

и вы можете создавать методы для обертывания более сложных действий на странице. Например:

public void AddPerson(string name, string email) 
{ 
    /// logic goes here tp click on NewButton, set the textfields and click on OkButton 
} 

Эти классы страниц дают преимущество в определении ваших элементов в одном месте.

В тестовом коде можно создать класс страницы следующим образом:

using(var ie = new IE("www.somedomain.com/person")) 
{ 
    var page = ie.Page<PersonDetailPage>(); 
    page.AddPerson("J. Doe", "[email protected]"); 

    // Do some Assert 
} 

Другой интересный базовый класс, чтобы помочь вам структурировать ваш код класса Control. Когда вы используете ASP, вы будете использовать элементы управления, которые не будут отображаться только на одном html-элементе на отображаемой странице. Вместо этого он часто является конструкцией элементов, содержащихся в элементе Div. При создании собственного класса управления и наследования Control вы сможете обернуть внутренние элементы управления (html) и поведение. Это упрощает повторное использование элемента управления в классах страниц. После примера того, как создать экземпляр элемент управления:

var calendar = Document.Control<CalendarControl>("calendarId"); 

Надеется, что это дает вам некоторое представление в том, как вы можете структурировать свои страницы и элементы управления.

Йерун

1

FWIW, мы используем WatiN и MbUnit для тестирования веб-интеграции в течение последних 3-х лет.

Мы разделили тесты в 3-х проекты:

  1. QA.Framework: Содержит код клея для создания тестовых приборов и различных пользовательского MBUnit и WatiN расширения.

  2. QA.SiteMap: содержит классы страниц и управления, упорядоченные иерархически в пространства имен, соответствующие различным доменам и частям сайтов. Этот проект позволяет отделить тесты от основной части структуры веб-сайта. Вы можете думать об этом как о модели сайтов.

  3. QA.Tests: содержит фактические тесты, также упорядоченные иерархически в пространства имен. Тесты используют SiteMap и Framework при необходимости для взаимодействия с веб-сайтом. Таким образом, существует гораздо меньше дублирования кода, чем если бы каждый тест содержал одни и те же кнопки и снова и снова ...

Jeff.

Смежные вопросы