Можно ли вызвать тест из другого теста с помощью Minitest? - PullRequest
1 голос
/ 21 мая 2019

У меня есть некоторый избыточный код, особенно с последним тестом, и было бы хорошо, если бы я мог очистить его, просто вызвав другие тесты в этом последнем тесте.

test "found login element successfully" do
  user = @driver.find_element(name: 'username')
  assert_not_nil user, "found username element"
end

test "entered login successfully" do
  user = @driver.find_element(name: 'username')
  user.send_keys "test"
  assert_equal "test", user.attribute("value"), "username text entered successfully"
end

test "found password element successfully" do
  password = @driver.find_element(name: 'password')
  assert_not_nil password
end

test "entered password successfully" do
  password = @driver.find_element(name: 'password')
  password.send_keys "test*"
  assert_equal "test*", password.attribute("value"), "password text entered successfully"
end

test "logged in successfully" do
  user = @driver.find_element(name: 'username')
  user.send_keys "test"
  password = @driver.find_element(name: 'password')
  password.send_keys "test"
  password.submit
  sleep 5
  assert_equal 'reddit: the front page of the internet', @driver.title
end

1 Ответ

1 голос
/ 21 мая 2019

Замечательная особенность minitest или любой другой библиотеки тестирования на основе ruby ​​заключается в том, что ... это просто Ruby!Поэтому создайте метод, который будет делать то, что вам нужно:

def get_username
  @driver.find_element(name: 'username').attribute("value")
end 

def set_username(value)
  user = @driver.find_element(name: 'username')
  user.send_keys value
end

def get_password
  @driver.find_element(name: 'password').attribute("value")
end

def set_password(value)
  password = @driver.find_element(name: 'password')
  password.send_keys "test*"
end

# etc ... 

Выше может быть вставлено прямо в ваш тестовый файл или введено через require, если вы хотите переместить его в свой собственный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...