рдирдорд╕реНрддреЗ,
рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдерд┐рд░рддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реВрдВред
[Theory, AutoData]
public void Dummy(string dummy)
{
MethodBase method = MethodBase.GetCurrentMethod();
IFixture fixture = method.GetCustomAttribute<AutoDataAttribute>().Fixture;
Assert.Equal(dummy, dummy);
}
рдФрд░ рдореБрдЭреЗ 'AutoDataAttribute.Fixture' рдЕрдкреНрд░рдЪрд▓рд┐рдд рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓рддреА рд╣реИред
рдСрдЯреЛрдбрд╛рдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╕реНрдерд┐рд░рддрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИред рдореИрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдорд┐рд╢реНрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдзрдиреНрдпрд╡рд╛рдж
рдирдорд╕реНрддреЗ,
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдмрд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрдерд┐рд░рддрд╛ рдХреЛ IFixture
рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ рдФрд░ рдпрд╣ рд╕реНрд╡рдпрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛:
c#
[Theory, AutoData]
public void Dummy(string dummy, IFixture fixture)
{
}
рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? :рдЖрдБрдЦ рдорд╛рд░рдирд╛:
рд╣рд╛рдБ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ AutoData wiki рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ?
рдореИрдВрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдЬрдЧрд╣ рдЦреЛрдЬ рдХреА рд╣реИред
рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ IOC рдХрдВрдЯреЗрдирд░ рдиреЗ IFixture рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рд╡рд╛рдпрд╛ рд╣реИред
рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рдЖрдк IoC рдХреЗ рд╕рд╛рде рдлрд┐рдХреНрд╕рдЪрд░ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдЗрд╕рдХреА рдХрднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдЕрдзрд┐рдХрддрд░ рдЬрдЯрд┐рд▓ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
[Theory, AutoMoqData]
public void Dummy(IFixture fixture, [Frozen]Mock<IComplexInterfaceWith30SubInterfaces> needed, TestClass sut)
{
//This will add interfaces setups for needed by retrieving them from the IoC container or by property access.
SetupInterfaces(fixture, needed);
//We can now use needed injected in sut.
}
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЖрд╕рд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИ
рдореБрдЭреЗ рдЖрдкрдХреЛ рдпрд╣ рдкрд╕рдВрдж рд╣реИ
[Theory, AutoMoqData]
public void Dummy(IFixture fixture)
{
Assert.Equal(String.Empty, String.Empty);
}
рдЗрд╕ рдкрд░
[Fact]
public void Dummy2()
{
IFixture fixture = new Fixture().Customize(new AutoMoqCustomization());
Assert.Equal(String.Empty, String.Empty);
}
рдЕрдзрд┐рдХрддрд░ рдЬрдЯрд┐рд▓ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╕рд╣рдордд рд╣реВрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧ рд╣реИред рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрди рд╕рд╣рд╛рдпрдХ рджреЛрд╣рд░рд╛рд╡ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ When()
рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдирд┐рдореНрди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
c#
public void Test([Frozen] IProvider provider, ISut sut, IFixture fixture)
{
// arrange
WhenProviderReturnsOnlyInitializedEntities(provider, fixture);
.....
}
рд▓реЗрдХрд┐рди рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдЕрднреА рднреА рд╡рд╣реА рд╣реИ
рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдИ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ AutoData wiki рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ?
@ malylemire1 рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╣реАрдВ рдПрдХ рдбреЙрдХреНрдЯрд░ рд╕рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдирдореВрдиреЗ рдХреЛ рд╣рдорд╛рд░реЗ рд╡рд┐рдХрд┐ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рд╛рдБ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ AutoData wiki рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ?
рдореИрдВрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдЬрдЧрд╣ рдЦреЛрдЬ рдХреА рд╣реИред
рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ IOC рдХрдВрдЯреЗрдирд░ рдиреЗ IFixture рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рд╡рд╛рдпрд╛ рд╣реИред
рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!