【发布时间】:2021-07-31 16:24:38
【问题描述】:
我创建了一个自定义内联自动起订量属性,如下所示:
public class AutoMoqDataAttribute : AutoDataAttribute
{
public AutoMoqDataAttribute()
: base(() =>{
var fixture = new Fixture().Customize(new CompositeCustomization(
new AutoMoqCustomization(),
new SupportMutableValueTypesCustomization()));
fixture.Behaviors.OfType<ThrowingRecursionBehavior>().ToList().ForEach(b =>
fixture.Behaviors.Remove(b));
fixture.Behaviors.Add(new OmitOnRecursionBehavior());
return fixture;}){}
}
public class InlineAutoMoqData : InlineAutoDataAttribute
{
public InlineAutoMoqData(params object[] objects) : base(new AutoMoqDataAttribute(), objects)
{
}
}
我喜欢 autofixture,因为如果我没有通过属性提供测试数据,它会自动为我填充数据。到目前为止,我可以使用内联数据来传递 null、字符串、int 等,但是如何传递空列表或对象?例如下面的测试方法。请随时修改我的代码以使其正常工作,因为我对单元测试很陌生。
[Theory]
[InlineAutoMoqData(null)]
public void UpdatePortfolioFiles_InvalidInput_ShouldThrowException(List<MyClass> mytestList, MyTestService sut)
{
//do something here
}enter code here
【问题讨论】:
标签: c# asp.net-core xunit autofixture