小编Nik*_*k M的帖子

AutoFixture使用正则表达式规则创建属性

我最近将此正则表达式模式属性应用于我的类中的一个属性,以便评估有效的url格式.现在出现的问题是AutoFixture无法创建显示错误的实例

"AutoFixture无法从Ploeh.AutoFixture.Kernel.RegularExpressionRequest创建实例,很可能是因为它没有公共构造函数,是抽象或非公共类型."

我尝试了一些像

var contact = _fixture.Build<ContactEntity>()
   .With(c=>c.Customer.Website,
     new SpecimenContext(_fixture)
       .Resolve(new RegularExpressionRequest(Constants.UrlRegex)))
   .Create();
Run Code Online (Sandbox Code Playgroud)

和

public class WebsiteSpecimenBuilder: ISpecimenBuilder
{
    public object Create(object request,
    ISpecimenContext context)
    {
        var pi = request as PropertyInfo;

        if (pi!=null && pi.PropertyType == typeof(string) 
            && (pi.Name.Equals("Email") || pi.Name.Equals("Website")))
        {
            //tried both of these options
            return (new OmitSpecimen() || "http://www.website.com";
        }

        return new NoSpecimen(request);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我仍然无法通过自动混合来创建课程.我错过了要创建它的东西,或者这个正则表达式太复杂,无法自动处理?

c# regex autofixture

2
推荐指数
1
解决办法
1076
查看次数

标签 统计

autofixture ×1

c# ×1

regex ×1