如何使用网站的BDD测试密码过期

本文关键字:测试 密码 过期 BDD 何使用 网站 | 更新日期: 2023-09-27 18:22:11

假设我有一个带有身份验证用户名和密码的网站,出于安全原因,用户必须每X个月更改一次密码(因此密码在更改X个月后过期,用户下次登录时将显示更改密码屏幕)。假设用户表中有一列LastChangeDate或NextChangeDate。

假设这是BDD中的一个有效的验收测试,我应该有类似的东西

Given My password has expired
When I sign in 
And I complete the change password form..
Then I can sign in with the new password

我应该如何执行第一个"给定"步骤?创建一个使用户密码过期的函数(例如,转到用户表并更改LastChangeDate/NextChangeDate)是一个好做法吗?这只是为了测试。

我正在使用C#和Selenium,但我认为它不相关。这更像是一个问题,如何在BDD中模拟未来的事件,但无法找到正确的答案。

如何使用网站的BDD测试密码过期

在ruby中有一个名为timecop的库,用于执行这样的操作。基本上,它可以让你去不同的时间旅行。这将允许您实现类似的Given

Given "my password has expired" do
  timecop.travel - password_expiration time
  @i = create user
  timecop.travel present
  @i.expired?.should be_true
end

(以上为伪代码)

我希望在C#环境中也有类似的东西。

无论如何,这只是参考,在您的上下文中,打开用户记录并将expired设置为true也是可行的。

我最终所做的是将包含存储库的库作为引用,并直接使用存储库来更改我的用户记录。