2017-04-06 3 views
1

specflowを使用してファイルをダウンロードし、特定の名前のファイルがダウンロードされているかどうかを確認するシナリオを作成しようとしています。Specflowが適切なステップ定義を生成しない

Scenario Outline: Download excel files 

Given I am on the Shipping 

When I download a <downloadfile> file 

Then I should be able to download the file. 

Examples: 

| downloadfile | 

| xyz    | 

| abc    | 

私はステップには、以下のファイルを生成私steps.csで生成されたファイルを取得:(。*)

[When(@"I download a xyz file\.")] 

public void WhenIDownloadAXyzFile_() 

{ 
    ScenarioContext.Current.Pending(); 
} 

を私は得ていないのですなぜステップ定義で誰も教えてもらえますか?ステップ定義の最初のサンプルコンテンツを示しています。

+0

これは本当に奇妙です。私は同じ振る舞いをした。これを回避するには、すべてのデータ( '| downloadfile |'の行の下のものすべて)を削除してから、正しく動作するようにします。ステップ定義を生成した後にデータを再度追加します。 – tnw

+0

一重引用符、つまり ''を追加してみてください – Joel

+0

@ tnw-回避策は問題ありません。私はデータにコメントして、ステップ定義を生成しようとしました。ありがとう.. :) – user1943608

答えて

0

ステップのようなプレーンテキスト、あるとき:

When I download a xyz file 

フレームワークは、「XYZ」は、あなたがキャプチャしたいアイテムであることを判断するために使用できるものは何もありません。

引用符を前後に置くと、ステップ定義でキャプチャして使用するものであることがフレームワークに通知されます。

When I download a "xyz" file 

そして

When I download a 'xyz' file 

正しいステップの定義を生成します両方。あいまいな一致のために、ステップ定義の正規表現内で(。*)を使用することは、キュウリベースのフレームワークでは危険です。

意図した場所で(。*)を使用すると、たとえば、特定のサイズのファイルをダウンロードする場合は、将来のステップ定義が混乱します。

When I download a jpeg file 

そして

When I download a 500kb jpeg file 

は、どちらも同じことを一致します。だからそれには注意してください。

関連する問題