Недавно я применил this атрибут шаблона regex к одному из свойств моего класса, чтобы оценить действительные форматы url. Проблема в настоящее время произошло, что AutoFixture не может создать экземпляр этого отображения ошибки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();
и
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);
}
}
Но я до сих пор не может получить autofixture создать класс. Я что-то упустил, чтобы создать его или слишком сложно ли это регулярное выражение для автовоспроизведения?
Возможно, связано: http://stackoverflow.com/q/28706286/126014 –
Какое регулярное выражение вы пытаетесь использовать? Кажется, что этот метод имеет много подобных. –
Я использую версию взорванных строк в приложении .net. Я сделал небольшие изменения, чтобы работать в .net и протестировал и увидел, что он работает, как ожидалось. Я нашел более простое регулярное выражение, которое, похоже, работает с autofixture. Но сейчас возникает странная вещь. 'если (! Пи = NULL && pi.PropertyType == TypeOf (строка)) { \t если (pi.Name == "Отправить") \t { \t \t возвращение "[email protected]"; \t} \t если (pi.Name == "Сайт") \t { \t \t возврата "http://www.blah.com"; \t}} return new NoSpecimen (request); ' Autofixture, похоже, перезаписывает его' Website: "http: // 0 #" ' –