Использование автобога для задания диапазона значений свойств элемента

#range #faker #bogus

Вопрос:

У меня есть следующие занятия:

   Class Person
    Property ID As String = Nothing
    Property Firstname As String = ""
    Property Lastname As String = ""
  End Class

  Class Account
    Property AccountNumber As String = ""
    Property Owners As New List(Of Person)
  End Class
 

Я хочу, чтобы вы использовали https://github.com/nickdodd79/AutoBogus чтобы установить диапазон значений от 1000 до 10000 для человека.Идентификатор, когда я создаю экземпляр класса учетной записи, например, так:

     Dim fk = AutoFaker.Create()
    Dim acct = fk.Generate(Of Account)
 

Пожалуйста, как я могу это сделать с помощью AutoBogus?

Ответ №1:

Первоначальная конструкция AutoBogus заключалась в создании графиков небольших объектов для модульных тестов. Создание требуемых чисел может повлиять на производительность. Однако, если вышесказанное-это то, что вы пытаетесь создать, и ничего более сложного, то оно может быть достаточно небольшим, чтобы добиться успеха.

Чтобы использовать AutoBogus из коробки, вы можете сделать следующее:

 Dim acct = AutoFaker.Generate(Of Account, 1000)
 

Вторым параметром должно быть количество учетных записей, которые вы хотите создать.

AutoBogus использует фиктивные данные под капотом, а затем использует отражение для заполнения неустановленных свойств. Если вы видите какие-либо проблемы с производительностью, вы можете использовать фиктивную версию напрямую с оговоркой, что вам нужно определить a RuleFor для каждого свойства. Поддельные документы содержат подробные сведения о том, как этого добиться.

Ник.

Комментарии:

1. Спасибо тебе за твои комментарии, Ник. Ваш ответ неверно истолковал мой вопрос. Я хотел убедиться, что ценности для Человека. Идентификаторы устанавливаются в диапазоне значений от 1000 до 10000, когда выполняется следующее: « Dim fk = автопроизводитель. Создать() Dim acct = fk.Создать(Учетной Записи) « Я отправлю вопрос на поддельную страницу GitHub, но я также был бы признателен, если бы вы все еще могли дать ответ с моими разъяснениями. Ваше здоровье.

Ответ №2:

Решение изменено по сравнению с ответом, предоставленным фиктивным автором bchavez по адресу https://github.com/bchavez/Bogus/issues/394.

 Sub Main
   Dim personFaker = New AutoFaker(Of Person)
   personFaker.RuleFor(Function(p) p.Firstname, Function(f) f.Name.FirstName)
              .RuleFor(Function(p) p.Lastname, Function(f) f.Name.LastName)
              .RuleFor(Function(p) p.ID, Function(f) f.Random.Int(1000,10000).ToString)

   Dim accountFaker = New AutoFaker(Of Account)
   accountFaker.RuleFor(Function(a) a.AccountNumber, Function(f) f.Random.Replace("###############"))
               .RuleFor(Function(a) a.Owners, Function(f) New List(Of Person)(personFaker.GenerateBetween(1,5)))
   accountFaker.Generate().Dump()
End Sub

Class Person
   Property ID As String = Nothing
   Property Firstname As String = ""
   Property Lastname As String = ""
End Class

Class Account
   Property AccountNumber As String = ""
   Property Owners As New List(Of Person)
End Class
 

Комментарии:

1. Хотя эта ссылка может дать ответ на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответы только по ссылкам могут стать недействительными, если страница, на которую дана ссылка, изменится.