gpt4 book ai didi

ruby-on-rails - 在进行验收测试和遵循 BDD 时,您是断言数据库更改还是仅断言用户看到的内容?

转载 作者:行者123 更新时间:2023-12-04 05:55:47 26 4
gpt4 key购买 nike

我正在 Ruby on Rails 应用程序上使用 Steak 进行验收测试。假设我想测试一个表单的功能。

  • 如果所有字段都正确,它应该创建一个用户。
  • 如果任何字段不正确,则不应创建用户。

在第一种情况下,一条消息将通知用户已创建:'The user has been created'

在第二种情况下,错误消息将指示错误。

我可以根据显示的信息进行测试。也就是说,如果显示正确的消息,则第一次测试通过。

或者我可以根据数据库的变化进行测试。也就是说,如果数据库有一个包含输入数据的新用户,则第一个测试通过。

或者我可以针对这两种情况断言,数据库应该更改并且应该显示适当的消息。

根据行为驱动开发,在概念上测试这种行为的适当方法是什么?

根据实用程序员的说法,测试这种行为的实用方法是什么?

最佳答案

通常,保持用户看到的内容。

但是,有时信息的使用者不止一位。也许,一旦数据到达数据库,另一个应用程序就会使用该数据(对于内部项目来说非常典型!)

如果您不能同时使用这两个应用程序实现自动化,那么断言数据库的内容或者验证 RESTful URL 上的资源可能是一个不错的方法。

如果您这样做,可能会改变场景的性质。不要说 Then the database should contain XYZ,而是尝试这样的事情:

Given that Fred Brown lives at 25 Warrington Grove, Springfield
When Fred orders a deckchair
Then the warehouse should receive an order:
Deckchair
Quantity: 1
To: Fred Brown
25 Warrington Grove
Springfield

因此,您始终关注系统的功能,而不仅仅是数据 - 即使仓库在您的场景中并未真正接收到它,您也在展示数据原因必须在那个特定的地方和形式。

这样,您还可以让自己选择稍后使用真实 UI 或 RESTful URL 等 - 该步骤独立于您选择的实现。

关于ruby-on-rails - 在进行验收测试和遵循 BDD 时,您是断言数据库更改还是仅断言用户看到的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267847/

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