Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 编写网站使用的特性/场景(作为管理员、用户和来宾)_Ruby On Rails_Ruby_Cucumber - Fatal编程技术网

Ruby on rails 编写网站使用的特性/场景(作为管理员、用户和来宾)

Ruby on rails 编写网站使用的特性/场景(作为管理员、用户和来宾),ruby-on-rails,ruby,cucumber,Ruby On Rails,Ruby,Cucumber,我是cucumber的新手,目前一直在尝试组织/构建一些功能/场景。我试图捕捉的行为是用户、来宾和管理员使用我的网站的行为。该网站主要用于创建私人和公共待办事项列表 以下是我想测试的具体场景: 注册用户可以查看其私人待办事项列表(但不能查看其他人的私人待办事项列表) 来宾(匿名用户)只能查看公共待办事项列表 管理员可以查看所有列表 管理待办事项列表 现在我要说的是: Feature: Managing Todo lists In order to be more productive

我是cucumber的新手,目前一直在尝试组织/构建一些功能/场景。我试图捕捉的行为是用户、来宾和管理员使用我的网站的行为。该网站主要用于创建私人和公共待办事项列表

以下是我想测试的具体场景:

  • 注册用户可以查看其私人待办事项列表(但不能查看其他人的私人待办事项列表)
  • 来宾(匿名用户)只能查看公共待办事项列表
  • 管理员可以查看所有列表
  • 管理待办事项列表
现在我要说的是:

Feature: Managing Todo lists
  In order to be more productive
  As a user of the site
  I want to be able to manage todo lists

Background:
  Given a user named "user-one@email.com" with password "secret-one"
  Given a user named "user-two@email.com" with password "secret-two"
  Given an admin named "admin@email.com" with password "admin"

Scenario: user-one@email.com can view his own private todo lists
Scenario: user-one@email.com can not view user-two@email.com private todo lists
Scenario: admin@email.com can view user-one@email.com and user-two@email.com private todo lists
Scenario: user-one@email.com can create private todo lists
Scenario: user-one@email.com can delete todo lists they own
Scenario: admin@email.com can delete user-one@email todo list
Scenario: guests can view all public todo lists
我遇到的问题是每个场景的设置。例如,在第一个场景中,我必须假设
user-one@email.com
已登录。在第一个
admin@email.com
场景我必须假设管理员已登录。在最后一个场景中,我需要假设没有人登录

那么,我如何管理那些给定的
?我要加一个吗

Given user-one@email.com is logged in

每一个场景?还是有更好的方法来构建这一切?请帮忙!我确信这是cucumber用户需要测试的一个非常常见的模式。

通常我只尝试列出重要的步骤。在你的情况下,我会这样做:

Feature: Managing Todo lists
  In order to be more productive
  As a user of the site
  I want to be able to manage todo lists

Background:
  Given a user named "user-one@email.com" with password "secret-one"
  Given a user named "user-two@email.com" with password "secret-two"
  Given an admin named "admin@email.com" with password "admin"

Scenario: Users can see own private todo lists
  Given user "user-one" has a private todo list
  Then user "user-one" can see the private todo list of "user-one"

Scenario: Users cannot see others private todo lists
  Given user "user-one" has a private todo list
  Then user "user-two" cannot see the private todo list of "user-one"
如果您在其他地方有登录步骤,您可以在
中重复使用该步骤,那么用户“user one”可以看到“user one”步骤定义的私有待办事项列表,而不是在功能中。或者您的步骤可以直接共享相同的代码


请看

您能给我举一个重复使用步骤的例子吗?我想这正是我想做的我编辑了答案并链接到