Autofixture: рдХреНрд░рдордмрджреНрдз рд╕реВрдЪрд┐рдпрд╛рдБ рднрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдордИ 2016  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: AutoFixture/AutoFixture

рдЬрдм рдЖрдк рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд▓рд┐рдП AutoFixture рдкреВрдЫрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЧреИрд░-рд░рд┐рдХреНрдд рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

``` рд╕реА#
рд╡рд░ рд╕реНрдерд┐рд░рддрд╛ = рдирдИ рд╕реНрдерд┐рд░рддрд╛ ();
рд╡рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ = рд╕реНрдерд┐рд░рддрд╛ред рдмрдирд╛рдПрдБ>();
Assert.NotEmpty (рд╡рд╛рд╕реНрддрд╡рд┐рдХ); // рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ

When you request a sorted list, on the other hand, the returned list is empty. This test fails its assertion:

``` C#
var fixture = new Fixture();
var actual = fixture.Create<SortedList<int, string>>();
Assert.NotEmpty(actual); // Fails

рдЪреВрдВрдХрд┐ AutoFixture рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧреИрд░-рд░рд┐рдХреНрдд рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ SortedList<TKey, TValue> рдХреЗ рд▓рд┐рдП рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдУрд╡рд░рд▓реЛрдб рдореЗрдВ рд╕реЗ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд▓реЗрддрд╛ рд╣реИ, SortedList<TKey, TValue> рд╕реЗ IDictionary<TKey, TValue> _relay_ рдЬреЛрдбрд╝рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдирдпрд╛ ISpecimenBuilder рдЬреЛ IDictionary<TKey, TValue> рдХреЛ context рд╕реЗ рд╣рд▓ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА SortedList<TKey, TValue> рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЙрдкрдпреБрдХреНрдд рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЕрдзрд┐рднрд╛рд░ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддрд╛ рд╣реИ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдореВрд▓реНрдпред

рдПрдХ рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдареЛрд╕ рд╢рдмреНрджрдХреЛрд╢ рдкрд╣рд▓реЗ рд╣реА рднрд░реЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдЙрд╕рдХреА рдирдХрд▓ рдХрд░рдирд╛ред Fixture рд╡рд░реНрдЧ рдореЗрдВ DictionaryFiller рдФрд░ DictionarySpecification рдХрд╛ рд╕рдВрдпреЛрдЬрди рджреЗрдЦреЗрдВред

enhancement good first issue

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@sbrockway рдиреЗ рдШреЛрд╖рдгрд╛ рдХреА рдХрд┐ рдЖрдк рдЗрд╕ рдкрд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ, рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: +1:

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрд╕ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкреНрд░рд╢реНрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

#623 рдФрд░ #624 рднреА рджреЗрдЦреЗрдВред

@ploeh рдореИрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рдПрдХ рд╢реЙрдЯ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдЧрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рд╣реВрдБред рдореИрдВрдиреЗ рдлреЛрд░реНрдХ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╡реАрдПрд╕ рдореЗрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдпрд╣ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реМрдВрдкрддреЗ рд╣реИрдВ, рдпрд╛ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ? рдореБрдЭреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕реМрдВрдкрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

@sbrockway рдиреЗ рдШреЛрд╖рдгрд╛ рдХреА рдХрд┐ рдЖрдк рдЗрд╕ рдкрд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ, рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: +1:

@sbrockway , @adamchester рд╕рд╣реА рд╣реИ: рдШреЛрд╖рдгрд╛ рдХрд░рдирд╛ рдЖрдорддреМрд░ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред AutoFixture рдПрдХ рдордзреНрдпрдо рд░реВрдк рд╕реЗ рд╕рдлрд▓ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд╛ рдПрдХ рд╕реНрдерд┐рд░ рдкреНрд░рд╡рд╛рд╣ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рджреЗрдЦрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХрдИ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдПрдХ рд╣реА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рддреЗ рд╣реИрдВ: рдореБрд╕реНрдХрд╛рди:

рдЕрдиреНрдп, рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп, рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдиреЗ рдпрд╣ рдкреВрдЫрдХрд░ рд╕рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛: +1:

рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдорджрдж рдЪрд╛рд╣рд┐рдП, рддреЛ рдХреГрдкрдпрд╛ рдкреВрдЫреЗрдВ :рдореБрд╕реНрдХрд╛рди:

рдореБрдЭреЗ рдЧрд┐рдЯрд╣рдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕реАрдЦрдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИред рдХрд▓ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛, рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЗрд╕рдиреЗ рдЧрд▓рдд рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдХрд┐ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдордЭ рд▓рд┐рдпрд╛ рдФрд░ рдЕрдкрдирд╛ рд░реЗрдкреЛ рдЕрджреНрдпрддрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ред
рдореИрдВ рдЕрдкрдиреЗ рд░реЗрдкреЛ рдореЗрдВ рдЕрдкрдиреА рдкрд┐рдЫрд▓реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЛ рд░реЛрд▓рдмреИрдХ/рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рдорд╛рд░реНрдЧ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдЯрд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд╛рдкрд╕ рдкрд╛ рд╕рдХреВрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрд╕ рдкрд░ рдХреЛрдИ рд╕рдВрдХреЗрдд рд╣реИ, рддреЛ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдХрд╛ рд░реЗрдкреЛ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдореИрдВ рдЖрдкрдХреЗ рдХрд╛рдВрдЯреЗ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛, рдореИрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рдареЛрд╕ рд╕рд▓рд╛рд╣ рджреЗрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдЕрдХреНрд╕рд░, рдЧрд┐рдЯ рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдЖрдк рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рдЦреЛ рдЧрдП рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рд╢рд╛рдЦрд╛ рдмрд░рдХрд░рд╛рд░ рд░рд╣реЗред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдХреНрд╕рд░ рдпрд╣ рд╕реБрдирддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧ рдЧрд┐рдЯ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рд╣рддрд╛рд╢рд╛ рдореЗрдВ рдПрдХ рдЖрджреЗрд╢ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╡реЗ рдЕрдкрдирд╛ рдХрд╛рдо рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ - рдЕрдЪреНрдЫреЗ рдХреЗ рд▓рд┐рдП!

рдЧрд┐рдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдирд╛ рд╕рдордп рд▓реЗрдВ, рдФрд░ рдХреЗрд╡рд▓ рд╡рд╣реА рдХрд░реЗрдВ рдЬреЛ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВред рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХрд╣реАрдВ рдФрд░ рдЕрдкрдиреЗ рднрдВрдбрд╛рд░ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдиреЗ рдХрд╛ рдкрдХреНрд╖ рд▓реЗрдВред рдЧрд┐рдЯ рдХреА рдЦреВрдмреА рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд╛рдЗрд▓-рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ (рдЕрд╕реНрдерд╛рдпреА) 'рдмреИрдХрдЕрдк' рдЖрдкрдХреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

zvirja picture zvirja  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

malylemire1 picture malylemire1  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

TroyHouston picture TroyHouston  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Ridermansb picture Ridermansb  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JoshKeegan picture JoshKeegan  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ