c# – AutoFixture:PropertyData和异构参数
发布时间:2020-12-15 05:38:34 所属栏目:百科 来源:网络整理
导读:鉴于以下测试: [Theory][PropertyData("GetValidInputForDb")]public void GivenValidInputShouldOutputCorrectResult( string patientId,string patientFirstName){ var fixture = new Fixture(); var sut = fixture.CreateHtmlOutputBuilder(); sut.DoSom
鉴于以下测试:
[Theory] [PropertyData("GetValidInputForDb")] public void GivenValidInputShouldOutputCorrectResult( string patientId,string patientFirstName ) { var fixture = new Fixture(); var sut = fixture.Create<HtmlOutputBuilder>(); sut.DoSomething(); // More code } 我想将夹具创建封装在自己的类中,类似于: [Theory] [CustomPropertyData("GetValidInputForDb")] public void GivenValidInputShouldOutputCorrectResult( string patientId,string patientFirstName,HtmlOutputBuilder sut ) { sut.DoSomething(); // More code } 问题是我正在使用PropertyData,后者提供两个输入参数.事实上,我正在尝试自动创建我的夹具作为参数导致异常. 这是CustomPropertyData: public class CustomPropertyDataAttribute : CompositeDataAttribute { public CustomPropertyDataAttribute(string validInput) :base(new DataAttribute[] { new PropertyDataAttribute(validInput),new AutoDataAttribute(new Fixture() .Customize(new HtmlOutpuBuilderTestConvention() )),}) { } } 有什么方法可以解决这个问题? 解决方法
您需要向PropertyDataAttribute提供数据,如下所示:
public static IEnumerable<object[]> GetValidInputForDb { get { yield return new object[] { "123","abc" }; } } patientId值为123,patientFirstName值为abc,AutoFixture将自动提供SUT值. CustomPropertyDataAttribute看起来不错. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 大数据技术原理与应用【第五讲】NoSQL数据库:5.
- ruby-on-rails – Rails 3:在引擎中包含一个插件
- DWR的异常处理及session过期
- ruby-on-rails-3 – link_to(:controller =>“s
- ruby – 如何跳过CSV文件的第一行并将第二行作为
- ruby-on-rails – 如何为用户提供文件存储限制?
- Oracle Linux 6.7中使用service multipathd relo
- React Native填坑之旅--ListView的Section Heade
- acdream 1211 Reactor Cooling 【上下界网络流 +
- vue动画
热点阅读