使用Bogus设置成员属性取值范围
Using Bogus to set member property value range
我有以下 classes:
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
使用 Bogus,我为 Person.ID 设置了从 1,000 到 10,000 的值范围,如下所示:
Dim fakePerson = New Faker(Of Person)().
StrictMode(False).
Rules(Sub(c, p)
p.ID = c.Random.Long(1000, 10000).ToString
End Sub
)
当我像这样实例化帐户 class 的实例时,如何设置 Account.Owners 以利用 fakePerson 中定义的 Person.ID 值?:
Dim fk = Faker.Create()
Dim acct = fk.Generate(Of Account)
伪作者 bchavez 在 https://github.com/bchavez/Bogus/issues/394.
提供的解决方案
Sub Main
Dim personFaker = New Faker(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 Faker(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
我有以下 classes:
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
使用 Bogus,我为 Person.ID 设置了从 1,000 到 10,000 的值范围,如下所示:
Dim fakePerson = New Faker(Of Person)().
StrictMode(False).
Rules(Sub(c, p)
p.ID = c.Random.Long(1000, 10000).ToString
End Sub
)
当我像这样实例化帐户 class 的实例时,如何设置 Account.Owners 以利用 fakePerson 中定义的 Person.ID 值?:
Dim fk = Faker.Create()
Dim acct = fk.Generate(Of Account)
伪作者 bchavez 在 https://github.com/bchavez/Bogus/issues/394.
提供的解决方案Sub Main
Dim personFaker = New Faker(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 Faker(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