AutoFixture的Without()方法在只有一个构造函数且所有参数都需要输入时无法正常使用?
创始人
2024-11-12 13:30:33
0

可以使用AutoFixture的Customize()方法,为该类型单独定制Fixture,从而解决该问题。具体代码示例如下:

public class TestClass { public string Name { get; set; } public int Age { get; set; }

public TestClass(string name, int age)
{
    Name = name;
    Age = age;
}

}

[TestMethod] public void TestCustomizedAutoFixture() { var fixture = new Fixture().Customize(new MultipleParameterConstructorCustomization()); var testClass = fixture.Create();

Assert.IsNull(testClass.Name);
Assert.AreEqual(0, testClass.Age);

}

public class MultipleParameterConstructorCustomization : ICustomization { public void Customize(IFixture fixture) { fixture.Customizations.Add(new MultipleParameterConstructorSpecimenBuilder()); } }

public class MultipleParameterConstructorSpecimenBuilder : ISpecimenBuilder { public object Create(object request, ISpecimenContext context) { var type = request as Type; if (type == null || type != typeof(T)) { return new NoSpecimen(); }

    var ctors = type.GetConstructors().Where(x => x.GetParameters().Count() > 1);
    if (!ctors.Any())
    {
        return new NoSpecimen();
    }

    return Activator.CreateInstance(type, ctors.First().GetParameters().Select(x => context.Resolve(x.ParameterType)).ToArray());
}

}

其中,MultipleParameterConstructorCustomization类为自定义类,用于定制fixture,重载ICustomization接口的Customize方法。MultipleParameterConstructorSpecimenBuilder类为自定义类,用于指定实例创建方式,重载ISpecimenBuilder接口的Create方法。对于只有一个构造函数但所有参数都需要输入的类型,可以通过这种方式自定义AutoFixture,来实现正常使用Without()和其他方法。

相关内容

热门资讯

推荐攻略!微信西楚辅助,pok... 推荐攻略!微信西楚辅助,pokemmo辅助器脚本下载,辅助教程(今日头条);是一款可以让一直输的玩家...
终于知道!吉安中至小程序微信辅... 终于知道!吉安中至小程序微信辅助,wepoker作弊方法,透明挂教程(有挂实锤);吉安中至小程序微信...
最新研发!福建天天开心辅助网,... 最新研发!福建天天开心辅助网,wpk辅助器,详细教程(讲解有挂);亲,有的,ai轻松简单,又可以获得...
我来向大家传授!四川麻将口诀顺... 我来向大家传授!四川麻将口诀顺口溜,hhpoker怎么破解,必胜教程(确实有挂);1、很好的四川麻将...
每日必备!相约十三水破解,破解... 您好:相约十三水破解这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...
科普分享!佛手在线辅助,德普之... 《科普分享!佛手在线辅助,德普之星辅助器app,专业教程(揭秘有挂)》 德普之星辅助器软件透明挂更新...
每日必备!大玩家福建十三水辅助... 【福星临门,好运相随】;每日必备!大玩家福建十三水辅助,wpk有辅助器吗,德州教程(竟然有挂);暗藏...
重大推荐!潮友会内部脚本辅助软... 重大推荐!潮友会内部脚本辅助软件,sohoo poker辅助器,新版2025教程(发现有挂);潮友会...
实测揭晓!来几局辅助器开挂,h... 实测揭晓!来几局辅助器开挂,hhpoker辅助挂是真的吗,扑克教程(有挂细节);来几局辅助器开挂免费...
总算了解!创思维激k辅助神器,... 总算了解!创思维激k辅助神器,hhpoker作弊码,详细教程(有挂辅助);总算了解!创思维激k辅助神...