私は倉庫内の同じコンテナに追加されるかもしれないアイテムに関するルールを強制するためのクラスを書く必要があります。そして、それを実装する前にキュウリに要件を翻訳したいと思います。キュウリのステップデータを適切に抽象化するには?
各アイテムには、「アイテムファミリ」(例:エレクトロニクス、ブック)、「アイテムステータス」(例:メイン在庫、不良在庫)、「バッチ」(例:1050,1051)などの属性があります。
私はこのためにキュウリのテストを書くためのいくつかの戦略を考えることができ、そして私は1つをお勧めしている知りたい:
:あなたは、製品ごとの属性をすべて列挙でき、まずを
Given I have a tote containing:
| sku | client | family | status | batch | weight |
| 100000 | Foo | garment | main | 1234 | 10 |
When I add the item:
| sku | client | family | status | batch | weight |
| 200000 | Bar | garment | main | 1234 | 10 |
Then I should be told there is a Client conflict
第二に、あなたがハードコーディングされた基本的な製品を持っており、そこから属性を異なる最小を指定して試みることができる:
Given I have a tote containing an item that's client "Foo"
When I add an item that's client "Bar"
Then I should be told there is a Client conflict
これは、ステップDEFを前提としていinitionsは基本的な属性を保持し、属性がステップで言及されるときにそれらを上書きします。ここでは正しいアプローチで
Given I have a tote containing an item
And I add an item with a different client
Then I should be told there's a client conflict
どれ指導:
最後に、あなたは、抽象化のさらなるステップを行くことができますか?