Fixture fixture = new Fixture();fixture.Register(ObjectID.GenerateNewID);
但我每次测试都会这样做.是否有可能以某种方式为所有测试注册这个全球?
解决方法 全局(或静态)无法做到这一点.我通常做的是创建一个TestConventions类,其中包含我想要应用于每个测试的所有自定义.
internal class TestConventions : CompositeCustomization{ public TestConventions() : base( new MongoObjectIDCustomization()) { } private class MongoObjectIDCustomization : ICustomization { public voID Customize(IFixture fixture) { fixture.Register(ObjectID.GenerateNewID); } }}
然后我将这些约定应用于每个测试:
var fixture = new Fixture().Customize(new TestConventions());
如果您使用的是autoFixture.XUnit2(或autoFixture.NUnit)插件,则可以通过定义导入测试约定的属性来减少此样板:
public class MyProjectautoDataAttribute : autoDataAttribute{ public MyProjectautoDataAttribute() : base( new Fixture().Customize(new TestConventions())) { }}
然后将其应用于您的测试用例:
[Theory,MyProjectautoData]public voID SomeFact(SomeClass sut){}总结
以上是内存溢出为你收集整理的c# – AutoFixture全局寄存器类型全部内容,希望文章能够帮你解决c# – AutoFixture全局寄存器类型所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)