我有一个用小黄瓜写的表用于我正在传递值的对象:
| Description | Perils |
| foo | 6 |
还有更多的值被传递,但上面这两个值是以此为例。
在绑定中,我正在检索此表数据并将其放入对象类型Cover
中。它有一个名为Description
的regualr属性,它可以从表中获取字符串foo
并将其设置为该属性。不过我的问题是Perils。这不是常规属性,而是IList<string>
。我想以某种方式将值6
从Perils传递给该属性,但AssistHelper
可能不支持。我已经尝试将标题更改为Peril[0]
,尽管我知道这是毫无意义的。有什么建议吗?
var tempTable = table.CreateInstance<Cover>();
var thisNeedsToBeSix = tempTable.Perils[0];
答案 0 :(得分:0)
如何让你的危险参数只是一个string
,然后使用string.Split()
在你的绑定中分解它?
答案 1 :(得分: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的实例。
请注意,如果某些内容不太正确,我还没有编译该代码,所以道歉。