Лучший способ справиться с этим заключается в следующем:
var elm = element(by.css('.mat-dialog-container')); //Click anywhere in the modal dialog
browser.actions().mouseMove(elm, {x: 500, y: 500}).click().perform()
Необходимо назвать метод непосредственно.
[SetUp]
public void DerivedSetUp()
{
base.BaseSetUp();
// Do something else
}
Править: Я не попробовал его, но возможно частичный метод мог бы работать также. Я предпочел бы делать вышеупомянутое все же.
Edit2: я только что попытался использовать частичные методы. Это не работало. Даже если это сделало, я думаю, что будет еще легче назвать базовый класс.
Следующие работы в MbUnit. Это может работать в NUnit также.
[TestFixture]
public abstract class Base {
[SetUp]
public virtual void SetUp() {
//Some stuff.
}
}
public class Derived : Base {
public override void SetUp() {
base.SetUp();
//Some more stuff.
}
[Test]
public virtual void Object_WhenInACertainState_WhenAMethodIsCalled_Throws() {
//Create and set state on the object.
//Call the method.
//Assert the method threw.
}
}
У Вас есть базовый класс явно. Учитывая, что NUnit использует [Установка] атрибут для повышения тестовой установки, я думаю, что это - "правильная вещь", чтобы сделать для NUnit, потому что это следует обычным правилам языка.
Несомненно, NUnit мог искать базовые классы и вызвать их функции Установки автоволшебно, но я думаю, что это было бы довольно удивительно для большинства людей.
Существует однако по крайней мере одна платформа поблочного тестирования, которая использует конструкторов для установки: xUnit. Сеть. Здесь, установку базового класса называют автоматически, потому что это - то, как конструкторы в C# ведут себя.
(Отметьте, тем не менее, это xUnit. Сеть рекомендует снова использовать тестовую установку.)
Подход, что я использую это, я учился в TDD FireStarter в Тампе, должен был иметь метод установки в базовом классе, и затем иметь виртуальный метод в названном базовом классе наблюдают. Этот метод затем называют в базовом классе в конце метода установки.
Затем то, что Вы делаете, находится в новом классе, который происходит из базового класса, Вы переопределите наблюдать метод. Прием в этом сценарии - Вы, хотят выполнить метод Установки базового класса, и дочерний класс не имеет метода Установки. Причиной этого является код, который Вы имеете в наблюдать методе, только те дополнительные вещи, в которых Вы нуждаетесь для дочернего тестового класса.
Этот подход работает хорошо на меня, но один глюк - то, что исполнитель тестов захочет выполнить тесты базового класса, поэтому что я делаю для двигений, который должен переместить Тесты от базового класса в новый класс, который происходит из основы, если у меня есть кто-либо.