1

キュウリでテストしたい次の機能があります。しかし、入力ファイルを一度だけ処理したいと思います(以下の機能の @Given )。しかし、毎回@Givenステップを実行しているようです。この @Given を次の機能で 1 回だけ実行することはできますか?

@fileValidation

Scenario Outline: File Validation

Given a file is uploaded with name "something.csv"
Then response filename created should not match input filename "something.csv"
And reason for errors should be "<Reason>" with error code "<Error code>" for row with RequestId "<RequestId>"

Examples:

  | RequestId     |  Error code | Reason |     
  | 123           |   101       | Failure 1 |
  | 124           |   102       | Failure 1; Failure 2 |

また、ギブンステップを削除して、Before および After フックを試してみましたが、うまくいきませんでした。

フックの前にも試しましたが、例の各行でこのループに来ています。

  @Before("@fileValidation")
    public void file_is_uploaded() throws Throwable {
        String fileName = "something.csv";
        processInputFile(fileName);
    }

    @After("@fileValidation")
    public void clear() {
        outputFileName = null;
    }

機能ファイルには、次のようなものがあります。

@fileValidation
Scenario Outline: File Validation

Background: Read the uploaded file "something.csv"
Then response filename created should not match input filename "something.csv"
And reason for errors should be "<Reason>" with error code "<Error code>" for row with RequestId "<RequestId>"

Examples:

  | RequestId     |  Error code | Reason |     
  | 123           |   101       | Failure 1 |
  | 124           |   102       | Failure 1; Failure 2 |
4

2 に答える 2

0

フックは機能するはずです/機能するはずです。または、ブール値フラグを設定してチェックすることもできます。

public class FileValidation {
...
...
private boolean fileOpened = false;

@Given("^a file is uploaded with name \"([^\"]*)\"$")
public void a_file_is_uploaded_with_name(String arg1) throws Throwable {
  if !(fileOpened) {
    processInputFile(...);
    fileOpened = true;
  }

 }
  ...
}
于 2014-02-24T12:19:40.550 に答える