Lettuce:複数行文字列

2217 ワード

Lettuceを捨ててBehaveの穴に入る準備ができています.しかしやはり引き続きLettuce公式サイトの粗末な翻訳を更新して完成します~
文字列を処理するためにアプリケーションを作成していることを想像してみてください.テストを作成すると、ステップに複数行の文字列を配置したいことに気づくかもしれません.複数行の文字列が機能します.
Feature: Split a string into multiple lines on spaces
  In order to make strings more readable
  As a user
  I want to have words split into their own lines

  Scenario: Split small-ish string
    Given I have the string "one two three four five"
    When I ask to have the string split into lines
    Then I should see the following:
      """
      one
      two
      three
      four
      five
      """

3つの引用符(""")のみの行は、複数行の文字列の先頭と末尾を表すために使用されます.次に、使用方法を示すステップを定義します.
from lettuce import step

@step('I should see the following:')
def i_should_see_the_following(step):
    assert step.multiline == """one
two
three
four
five"""

とても簡潔明瞭です.スペースが削除され、先頭または末尾に改行文字がありません.これは、解析器が空の行、先頭、末尾のスペースを削除したためです.空白の行、先頭または末尾のスペースが必要な場合は、行の開始または終了に二重引用符を使用します.彼らは引用符でスペースを保存し、他の単行線をカスケードします.たとえば
Feature: Split a string into multiple lines on spaces
  In order to make strings more readable
  As a user
  I want to have words split into their own lines

  Scenario: Split small-ish string
    Given I have the string "one two three four five"
    When I ask to have the string split into lines
    Then I should see the following:
      """
     " one
     " two  "
     "  three   "
     "   four    "
     "    five     "
     "
      """

私たちはこのように検査することができます.
from lettuce import step

@step('I should see the following:')
def i_should_see_the_following(step):
    assert step.multiline == '
'.join([ ' one', ' two ', ' three ', ' four ', ' five ', ''])

確かに、これはチェックですが、現在の解析器でfeature定義を実装する新しい方法はありません.一部だけ空白を残します.最初の行の末尾にスペースがないので、末尾に引用符は必要ありません.また、文字列の1行の最初に二重引用符が必要な場合は、2つの二重引用符で行を開始する必要があります.これにより、最初の引用符が削除されます.
下一篇:Lettuce Datable下一篇:Lettuce:Scenario Outlines