Новая версия 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", "jdoe@example.com");
// Do some Assert
}
Другим интересным базовым классом, который поможет вам структурировать ваш код, является класс Control. Когда вы используете ASP, вы будете использовать элементы управления, которые не будут отображаться только для одного HTML-элемента на отображаемой странице. Вместо этого это часто будет конструкция элементов, содержащихся в элементе Div. Создавая собственный класс элемента управления и наследуя элемент управления, вы сможете обернуть внутренние элементы и поведение элементов управления (html). Это позволяет очень легко повторно использовать элемент управления в ваших классах страниц. Ниже приведен пример создания экземпляра элемента управления:
var calendar = Document.Control<CalendarControl>("calendarId");
Надеюсь, это даст вам некоторое представление о том, как вы можете структурировать свои страницы и элементы управления.
Йерун