When writing a BDD function, add the previous user interaction to this step or the When step?

I am trying to write requirements for a multi-stage business process (through the wizard). I have many scenarios in which user interactions with one screen will change if you are allowed to select options on another screen.

For example (I closed the real business, but the process and the form of the steps are almost identical):

Feature: Personal Diagnostic Search Filter
  In order to select a Technician who offers Personal Diagnostics,
    when I've asked for a Personal Diagnostic
  As a Business Customer
  I want to limit my search to Technicians who offer Personal Diagnostics

  Background:
    Given a Business named "Big Al Auto Supply"
      And a Customer named "Bob Test" at the "Big Al Auto Supply" Business
      And an Account named "bobtest@testbusiness.com" owned by "Bob Test"
      And the "bobtest@testbusiness.com" Account has the "Repair Order Creator"
        permission
      And you log in as "bobtest@testbusiness.com"
      And you start scheduling a new Repair Order

  Scenario: Enter the Select Technician page when Use PD is selected
    Given you select Use PD
    When you enter the Select Technician page
    Then the PD Filter should be visible
      And the PD Filter should be selected

  Scenario: Basic Search for Technicians when PD Filter is selected
    Given a Technician named "PD Technician"
      And the Technician named "PD Technician" supports PD
      And a Technician named "Non-PD Technician"
      And the Technician named "Non-PD Technician" does not support PD
      And you select Use PD
      And you enter the Select Technician page
      And you select the PD Filter
      And you select Basic Search
    When you search for Technicians with the name "Technician"
    Then your search results should contain "PD Technician"
      And your search results should not contain "Non-PD Technician"

But on the wiki , you are advised:

Avoid talking about user interaction in givens

They continue to make an exception:

Log in to the user’s system (Exception from the recommendation without interaction. Things that "happened earlier" are okay).

This page also says that:

,

, ?

select Use PD , . , PD , " ".

, . , "", , . , Use PD , . .

+5
1

, , , .

, , - :

Given our customer Bob Test is scheduling a repair order
And we have two technicians: "Fred Technician" and "George Nontechnician"
When Bob Test decides he wants a Personal Diagnostic
And he selects a technician
Then the search results should only contain "Fred Technician"

, , - . , "", - . BDD - . , , , , ..

. , . , , .

"" . . , , . , , , "George Nontechnician" ​​..

, , .

, , . , , , - .

"" - , . Personal Diagnostics, , , "" , "Givens". , - , , PD? , ; , . "", "" . ( , "" ).

, , , - .

, .

+8

All Articles