gpt4 book ai didi

javascript - cucumber /自动化测试 : How to approach the overall concept using javascript functions?

转载 作者:行者123 更新时间:2023-11-28 21:25:09 25 4
gpt4 key购买 nike

首先让我说我是 javascript 的新手,刚刚开始。这可能是一个广泛的问题,但我真的很想得到一个答案,这样我就能理解整个概念/方法。我正在阅读这本名为《更敏捷测试》的书,其中有一段是关于自动化测试和页面对象模式的,以及如何以某种方式编写自动化测试用例非常有用,因此如果实际 UI 发生某些变化,我只需要更改该对象/函数和使用该对象/函数的所有其他测试用例将在该更改后继续工作。

这是我的想法的一个例子,假设我有以下 cucumber 场景

Given I'm on some page
When I login
Then I must see some other page

这就是上面的场景。

我是否应该像某种接收登录名和密码两个参数的函数那样实现我的登录代码,然后单击 UI 上所需的字段/按钮。如果我有那个功能,我会简单地使用 When('something'), function login() etc.

如果将来我需要在其他测试用例中使用登录,我会在 given 或 when 语句中使用该函数。

这样做正确吗?

最佳答案

您应该将登录代码实现为辅助函数,然后从登录步骤中调用它。

当您开始开发系统登录功能时,您将需要一个 When 步骤来登录,例如

Given I am registered
When I login
Then I should be logged in

完成后,您可以按照以下步骤重用此功能

鉴于我已登录

实现的话,我用ruby实现,你要适配js。

# features/step_definitions/login_steps.rb
module LoginStepHelper
def login_as(user:)
# assumes user is an object that knows its email, password etc.
...
end
end
World LoginStepHelper

When I login
login_as user: @i # assumes you have setup who you are earlier
end

Given I am logged in
login_as user: @i
end

请注意,有许多不同的登录步骤定义是完全没问题的,只要它们使用相同的辅助方法来完成实际工作即可。

我强烈建议您不要使用 before 钩子(Hook)或标记来控制登录。如果您正在编写许多需要登录才能执行某些操作的场景,请改用后台。

例如

Feature: Registering gives benefits

Background:
Given I am registered
And I am logged in


Scenario: Have a history
When I view my history
Then
...

而不是

Feature: Registering gives benefits

@logged_in
Scenario: Have a history
When I view my history
...

@hooks 旨在控制事物运行方式的技术方面,例如@wip、@javascript 不要将它们用于业务功能。

最后,您可以在示例项目 (https://github.com/diabolo/cuke_up/tree/master/features) 的这组功能中更详细地看到这一点

关于javascript - cucumber /自动化测试 : How to approach the overall concept using javascript functions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42651631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com