If your SpecFlow tests only use one Peril, then you could create a CoverWrapper instead of using Cover directly e.g.
The binding could look as follows:
[Given(@"Given I entered the following data into the new form:")]
public void x(Table table)
{
var coverWrapper = table.CreateInstance<CoverWrapper>();
}
The CoverWrapper could look like:
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;
}
}
You could then call coverWrapper.GetCover() to return an instance of Cover as you want it.
Note that I haven't compiled that code so apologies if something is not quite right.