рд╣рдо рдиреИрдиреНрд╕реАрдПрдлрдПрдХреНрд╕ рднрд╛рдЧ рдкрд╛рдВрдЪ рдкрд░ рдкрд╣рд▓рд╛ рдЖрд╡реЗрджрди рдмрдирд╛рддреЗ рд╣реИрдВред рдЖрд╡реЗрджрди рдкрд░реАрдХреНрд╖рдг

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

рдиреИрдиреНрд╕реА рдПрдлрдПрдХреНрд╕ рдиреИрдиреНрд╕реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдиреИрдиреНрд╕реА.рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо NuGet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╣рд▓реЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреЛрдбрд╝реЗрдВред (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП MSTest рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рд╕реА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╢реНрд░рдо рд▓рд╛рдЧрдд рдХреЗ рдмрд┐рдирд╛ nUnit рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ )ред



рдЕрдм рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВред



рдЗрд╕рдХреЗ рдмрд╛рдж, NuGet Package Manager рдЪрд▓рд╛рдПрдВ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Nancy.Testing рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛрдбрд╝реЗрдВред



рд╣рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ IRootPathProvider рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдПрдХ рдЖрд░рдХреНрд╖рдг рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ рдЬреЛ MSTest рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ NancyFX рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣реЛрддрд╛ рд╣реИред рдЬрдм nUnit рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо TestRootPathProvider рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реИред рдкреНрд░рджрд╛рддрд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

using Nancy; namespace NancyTestProject { public class TestRootPathProvider : IRootPathProvider { public string GetRootPath() { return @"C:\......\GitHub\NancyFxApplication\NancyFxApplication"; } } } 


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

 using Microsoft.VisualStudio.TestTools.UnitTesting; using Nancy; using Nancy.Testing; using NancyFxApplication; namespace NancyTestProject { [TestClass] public class NancyTest { [TestMethod] public void simplest_get_test() { var bootstrapper = new ConfigurableBootstrapper(with => { with.Module<NancyFxModule>(); with.RootPathProvider<TestRootPathProvider>(); }); // Given var browser = new Browser(bootstrapper); // When var result = browser.Get("/", with => { with.HttpRequest(); }); // Then Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); } } } 


рдЕрдм рдкрд░реАрдХреНрд╖рдг рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:



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

Source: https://habr.com/ru/post/In203346/


All Articles