Autofixture: AutoFixture рдХреЛ рд╕реНрдерд┐рд░ рдмрдирд╛рдПрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЕрдЧре░ 2013  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: AutoFixture/AutoFixture

[рдпрд╣ рдПрдХ рд╡реГрджреНрдзрд┐ рдЕрдиреБрд░реЛрдз рд╣реИ]

рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рдЕрдЧрд░ рд╣рдо рд▓рд┐рдЦ рдкрд╛рддреЗ

рд╕реНрдерд┐рд░рддрд╛редрдмрдирд╛рдПрдВ();

рдПрдХ рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рддрддреНрдХрд╛рд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп
рд╡рд░ рд╕реНрдерд┐рд░рддрд╛ = рдирдИ рд╕реНрдерд┐рд░рддрд╛ ();
рд╕реНрдерд┐рд░рддрд╛редрдмрдирд╛рдПрдВ();

рдСрдЯреЛрдлрд┐рдХреНрд╕реНрдЪрд░ рдХреЗ рдПрдирдбреАрд╕реА рдореЗрдВ рдЕрдкрдиреА рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ, рдЖрдкрдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдирдлрд░рдд рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░ рджреЗрдЦрдирд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдирдпрд╛ рдлрд┐рдХреНрд╕реНрдЪрд░ рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ, рдореИрдВ рдлрд┐рдХреНрд╕реНрдЪрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдмрдирд╛рдПрдВ();

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ ?

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

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

6 рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХреЛ рд╕реЗрд╡ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ

``` рд╕реА#
рд╡рд░ рдлреВ = рд╕реНрдерд┐рд░рддрд╛ред рдмрдирд╛рдПрдБ();

provide any advantage that

``` c#
var foo = new Fixture().Create<Foo>();

рдирд╣реАрдВ?

рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдмрдирд╛рдХрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдорд╛рд░реНрдХ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореБрдЭреЗ рддреЗрдЬреА рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрдврд╝рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ;

рд╕реНрдерд┐рд░рддрд╛редрдмрдирд╛рдПрдВ();
рд╕реНрдерд┐рд░рддрд╛.рдмрд┐рд▓реНрдб();

рд╕реЗ

рдирдИ рд╕реНрдерд┐рд░рддрд╛ ()ред рдмрдирд╛рдПрдБ();
рдирдИ рд╕реНрдерд┐рд░рддрд╛ ()ред рдмрд┐рд▓реНрдб();

рдпрд╣ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╡реГрджреНрдзрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдСрдЯреЛрдлрд┐рдХреНрд╕реНрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдореЗрд░реЗ рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рдХреЛ рдФрд░ рднреА рддреЗрдЬ рдХрд░ рджреЗрдЧрд╛ред

рдХрд╛рдлреА рдЙрдЪрд┐рддред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрдардиреАрдпрддрд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдЪреАрдЬ рд╣реИред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рдЖрдзрд╛рд░реЛрдВ рдореЗрдВ, рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдЖрдзрд╛рд░, рдпрд╛ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рднреА рдЫреЛрдЯреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕рдЪрд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк ASP.NET MVC рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рджреЗ рд╡реЗрдирд┐рд▓рд╛ рд╕реНрдерд┐рд░рддрд╛ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ (IIRC) рдЙрди рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрдн рд╣реИрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ Fixture.Create<T>() рд╡рд┐рдзрд┐ рдПрдХ рд╕рд╛рджреЗ рд╡реЗрдирд┐рд▓рд╛ рд╕реНрдерд┐рд░рддрд╛ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреА, рдореИрдВ рдЗрд╕реЗ рд╕реАрдорд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдорд╛рдирддрд╛ рд╣реВрдВред

рдпрд╣ рд╡рд╣ рджрд┐рд╢рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ AutoFixture рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рд╕реБрдЭрд╛рд╡ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рднреА рдЖрдкрдХреЛ рдРрд╕рд╛ рдЖрд╡рд░рдг рд╕реНрд╡рдпрдВ рдмрдирд╛рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИ; рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрд╛рдлреА рддреБрдЪреНрдЫ рд╣реЛрдЧрд╛ред

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

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