Autofixture: рдкреНрд░рд╢реНрди: рд╕реЗрдЯрдЕрдк рдиреЗрд╕реНрдЯреЗрдб рдирд┐рд░реНрднрд░рддрд╛ AutoMoq Customization рдХреЗ рд╕рд╛рде рдирдХрд▓реА рд╣реИ

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

рдореИрдВрдиреЗ рдиреЗрд╕реНрдЯреЗрдб рдирд┐рд░реНрднрд░рддрд╛ рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдСрдЯреЛ-рдореЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AutoMoqCustomization рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИрдВред рдпрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Mock<IObject> рдХреЛ рдлреНрд░реАрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреНрдпреЛрдВ рд╣реИ рдЬрд╣рд╛рдВ Moq рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдФрд░ IObject рд╕реНрдерд┐рд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ?

[TestClass]
    public class MyTestClass
    {
        [TestMethod]
        public void Test()
        {
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var objMock = fixture.Freeze<Mock<IObject>>();
            var sut = fixture.Create<Dependant2>();

            sut.Obj.Should().BeSameAs(objMock);
        }
    }

    public interface IObject { }

    public interface IDependant { IObject Obj { get; } }

    public class MyObject : IObject { }

    public class Dependant2
    {
        public Dependant2(IDependant dependant)
        {
            Obj = dependant.Obj;
        }

        public IObject Obj { get; }
    }

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

AutoMoqCustomization рдирдХрд▓реА рд╡рд╕реНрддреБрдПрдВ рдмрдирд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдирдХрд▓реА рдХреЗ рд╕рджрд╕реНрдп рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдВ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп AutoConfiguredMoqCustomization рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рдП) рдирдХрд▓реА рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗрдЯрдЯреЗрдмрд▓ рдЧреБрдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдмреА) рд╕реЗрдЯрдЕрдк рд╡рд┐рдзрд┐рдпреЛрдВ/рдЗрдВрдбреЗрдХреНрд╕рд░реНрд╕ рдХреЛ рд╕реНрдерд┐рд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЖрд▓рд╕реА рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ (рдФрд░ рдпрд╛рдж рдХрд░рдиреЗ) рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдЧрд╛

рджреЛ рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдпрд╣ рд╕реЗрдЯрдЕрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

  • ref рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐рдпрд╛рдВ
  • рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ

рдЪреАрдЯ рд╢реАрдЯ рдХреЗ

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

AutoMoqCustomization рдирдХрд▓реА рд╡рд╕реНрддреБрдПрдВ рдмрдирд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдирдХрд▓реА рдХреЗ рд╕рджрд╕реНрдп рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдВ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп AutoConfiguredMoqCustomization рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рдП) рдирдХрд▓реА рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗрдЯрдЯреЗрдмрд▓ рдЧреБрдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдмреА) рд╕реЗрдЯрдЕрдк рд╡рд┐рдзрд┐рдпреЛрдВ/рдЗрдВрдбреЗрдХреНрд╕рд░реНрд╕ рдХреЛ рд╕реНрдерд┐рд░рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЖрд▓рд╕реА рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ (рдФрд░ рдпрд╛рдж рдХрд░рдиреЗ) рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдЧрд╛

рджреЛ рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдпрд╣ рд╕реЗрдЯрдЕрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

  • ref рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐рдпрд╛рдВ
  • рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ

рдЪреАрдЯ рд╢реАрдЯ рдХреЗ

рддреЗрдЬреА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ AutoConfiguredMoqCustomization рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде IDependant рдФрд░ рдпрд╣ рдЬрдореЗ рд╣реБрдП рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЧреИрд░-рдирд┐рдкрдЯрд╛рди рдпреЛрдЧреНрдп рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рднреА рд╕рдореНрдорд╛рди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? Moq рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕реЗрдЯрд░ рди рд╣реЛрдиреЗ рдкрд░ рднреА рдХреЛрдИ рдкреНрд░реЙрдкрд░реНрдЯреА рдЧреЗрдЯрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рджрд░рдЕрд╕рд▓, рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред рдпрд╣ рд╕реЗрдЯрдЕрдк рдкреНрд░рд╛рдкреНрдд-рдХреЗрд╡рд▓ рдЧреБрдг рднреА рдХрд░рддрд╛ рд╣реИ, рдореЗрд░рд╛ рдмреБрд░рд╛ред

рдореБрдЭреЗ Moq рдореЗрдВ рдПрдХ рдмрдЧ рднреА рдпрд╛рдж рд╣реИ рдЬреЛ AutoMoq рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдХреЗрд╡рд▓-рдкреНрд░рд╛рдкреНрдд рдЧреБрдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд┐рдпрд╛, рддреЛ рдЖрдкрдХреЛ Moq рд╕рдВрд╕реНрдХрд░рдг 4.2.1409.1722 рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо (# 434 рдкрд░ рд╡рд┐рд╡рд░рдг) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Moq рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред

рдЙрдЪреНрдЪрддрдо Moq рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ 4.2.1409.1722 рд╕реЗ рдХрдо рд╣реИ рдФрд░ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдпрд╣ рдХреЗрд╡рд▓-рдкреНрд░рд╛рдкреНрдд рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред Moq рдмрдЧ рдХреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдирд╡реАрдирддрдо рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдпрд╛ рдерд╛ред рдорджрдж рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

рдбреБрдкреНрд▓рд┐рдХреЗрдЯ http://stackoverflow.com/q/36656741/126014

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

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

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

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

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

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

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