【发布时间】:2016-06-29 01:00:46
【问题描述】:
我遇到了一个有趣的问题。我发现 AutoDataAttribute 可用于最小化测试的“排列”部分(通过 ctor 传递的依赖项)。太棒了!
例子:
public class AutoMoqDataAttribute : AutoDataAttribute
{
public AutoMoqDataAttribute()
: base(new Fixture().Customize(new AutoMoqCustomization()))
{ }
}
[Theory, AutoMoqData]
public void Process_ValidContext_CallsK2Workflows(
[Frozen]Mock<IK2Datasource> k2,
[Frozen]Mock<IAppConfiguration> config,
PrBatchApproveBroker sut)
{
(...)
}
现在我想使用这个很棒的功能并将我自己的数据注入到这个理论中:
[Theory, AutoMoqData, MemberData("Data")]
public void ExtractPayments_EmptyInvoiceNumber_IgnoresRecordsWithEmptyInvoiceNumber(
[Frozen]Mock<IExcelDatasource> xls,
SunSystemExcelDatasource sut,
List<Row> rows,
int expectedCount)
{
(...)
}
问题:AutoData 属性将为我生成随机数据。我发现的唯一方法是摆脱 AutoData 属性并使用 MemberData。如果我这样做,我需要自己处理对象实例化:)...
有没有办法同时传递我的类和一些“硬编码”数据?
谢谢你, 赛博
【问题讨论】:
标签: unit-testing xunit autofixture