0

値を渡すオブジェクト用にガーキンで記述されたテーブルがあります。

    | Description | Perils |
    | foo         | 6      |

渡される値は他にもたくさんありますが、上記の 2 つが例として取り上げられています。

バインディングでは、このテーブル データを取得し、それを のオブジェクト型に入れていますCoverDescriptionテーブルから文字列を取得してそのプロパティに設定できる、通常のプロパティが呼び出されfooます。しかし、私の問題は危険です。これは通常のプロパティではなく、IList<string>. 6どうにかして Perils からそのプロパティに値を渡したいのですが、それAssistHelperがサポートされていない可能性があります。ヘッダーを に変更しようとしましたがPeril[0]、それが無意味であることはわかっていました。助言がありますか?

var tempTable = table.CreateInstance<Cover>();
var thisNeedsToBeSix = tempTable.Perils[0];  
4

2 に答える 2

0

SpecFlow テストで Peril を 1 つしか使用しない場合は、Cover を直接使用する代わりに、CoverWrapper を作成できます。

バインディングは次のようになります。

[Given(@"Given I entered the following data into the new form:")]
public void x(Table table)
{
    var coverWrapper = table.CreateInstance<CoverWrapper>();
}

CoverWrapper は次のようになります。

public class CoverWrapper
{
 private Cover cover;

 public CoverWrapper()
 {
  cover = new Cover();
 }

 public string Description
 {
  get
  {
   return cover.Description;
  }
  set
  {
   cover.Description = value;
  }
 }

 public string Peril
 {
  get
  {
   return cover.Perils[0];
  }
  set
  {
   cover.Perils.Add(value);
  }
 }

 public GetCover()
 {
  return cover;
 }
}

次に、coverWrapper.GetCover() を呼び出して、必要に応じて Cover のインスタンスを返すことができます。

私はそのコードをコンパイルしていないことに注意してください。何かが正しくない場合は申し訳ありません。

于 2013-09-30T14:11:49.937 に答える
0

perils 引数を単に aにしてから、バインディング内で分割するためstringに使用するのはどうですか?string.Split()

于 2013-09-26T20:09:02.707 に答える