我正在努力进行Step参数转换。 基本上我想做的就是改变每一步 ' ...类别页面'文本内部到CategoryPage对象
功能文件步骤如下所示
I have this step in feature file:
Given a webrowser is at "Women's dresses category page"
步骤定义类中的方法如下所示:
[Given(@"a webrowser is at ""(.* category page)""")]
public void GivenAWebrowserIsAt(CategoryPage p0)
{
Console.WriteLine(p0.Title);
}
我的论点Transformation类看起来像这个
namespace merino_bdd_test.Transformers
{
[Binding]
public class CategoryPageTransformer
{
[StepArgumentTransformation(@"(.* category page""")]
public CategoryPage TransformIntoCategoryOage(string categoyPage)
{
return new CategoryPage(categoyPage, categoyPage);
}
}
}
我想要转换步骤的CategoryPage类看起来像这样
namespace merino_bdd_test.Utils
{
public class CategoryPage
{
public string Title {get;set; }
public string Link { get; set; }
public CategoryPage(string title, string link)
{
this.Title = title;
this.Link = link;
}
}
}
我收到消息:System.InvalidCastException:来自' System.String'的无效广播到' merino_bdd_test.Utils.CategoryPage'。
我做错了什么?
答案 0 :(得分:0)
一旦指定了转换,就不需要再次在Given
中指定参数。
请参阅此link
我尚未对此进行测试,但请尝试修改您的Given
代码,如下所示:
[Given(@"a webrowser is at (.*)")]
public void GivenAWebrowserIsAt(CategoryPage p0)
{
Console.WriteLine(p0.Title);
}
答案 1 :(得分:0)
问题是你在步骤参数转换的正则表达式中留下了"
。
正确的属性应该是:
[StepArgumentTransformation(@"(.* category page)"]