0

我有一个用小黄瓜写的表,用于将值传递给这样的对象:

    | Description | Perils |
    | foo         | 6      |

传递的值要多得多,但以上面这两个为例。

在绑定中,我正在检索此表数据并将其放入Cover. 它有一个名为regualr 的属性Description,可以foo从表中获取字符串并将其设置为该属性。然而,我的问题是与危险有关。这不是一个常规属性,而是一个IList<string>. 我想以6某种方式将 Perils 的值传递给该属性,但AssistHelper可能不支持。我已经尝试将标题更改为Peril[0]尽管我知道那毫无意义。有什么建议么?

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

2 回答 2

0

让你的危险论点只是一个string然后用string.Split()它在你的绑定中分解它怎么样?

于 2013-09-26T20:09:02.707 回答
0

如果您的 SpecFlow 测试只使用一个 Peril,那么您可以创建一个 CoverWrapper 而不是直接使用 Cover,例如

绑定可能如下所示:

[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 回答