Protractor: рдХреЛрдгреАрдп 2 рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдирдХрд▓реА рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдЕрдкреНрд░реИрд▓ 2016  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/protractor

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдгреАрдп 2 рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирдХрд▓реА рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдореБрджреНрджрд╛ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП TODO рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдФрд░, рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ SO рдкреЛрд╕реНрдЯ рдХреЛ рдХреНрд░реЙрд╕-рд░реЗрдлрд░реЗрдВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: http://stackoverflow.com/questions/36354233/protractor-mocking-backend-with-angular2-on-api-request ред

рдзрдиреНрдпрд╡рд╛рджред

user experience feature request

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

@ jlin412 рд╣рд╛рдВ, рдЖрдЦрд┐рд░рдХрд╛рд░, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдФрд░ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдпрд╣ рдПрдУрдЯреА рдФрд░ рдЧреИрд░-рдПрдУрдЯреА рджреЛрдиреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╣рд╛рдЗрдмреНрд░рд┐рдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ ng1 рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред

рдмрд╛рдХреА рд╕рднреА - рдХреГрдкрдпрд╛ +1 рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдХреА рдЗрдореЛрдЬреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдЧрддрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЗрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реВрдБ рддрд╛рдХрд┐ рдпрд╣ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реЛред рдзрдиреНрдпрд╡рд╛рдж!

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

@juliemr рдХреНрдпрд╛ рд╣рдо рдХреЛрдгреАрдп 2 рдХреЗ рд▓рд┐рдП рдирдХрд▓реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХрдм? рдпрджрд┐ рд╣рдо рд╣рд╛рдЗрдмреНрд░рд┐рдб рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЗрд╕ рджреМрд░рд╛рди рдореЙрдХ рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛?

@ jlin412 рд╣рд╛рдВ, рдЖрдЦрд┐рд░рдХрд╛рд░, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдФрд░ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдпрд╣ рдПрдУрдЯреА рдФрд░ рдЧреИрд░-рдПрдУрдЯреА рджреЛрдиреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╣рд╛рдЗрдмреНрд░рд┐рдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ ng1 рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред

рдмрд╛рдХреА рд╕рднреА - рдХреГрдкрдпрд╛ +1 рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдХреА рдЗрдореЛрдЬреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдЧрддрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЗрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реВрдБ рддрд╛рдХрд┐ рдпрд╣ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реЛред рдзрдиреНрдпрд╡рд╛рдж!

@juliemr рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдгреАрдп 2 рдХреЗ рд▓рд┐рдП рдирдХрд▓реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдИрдЯреАрдП рд╣реИ?
рд╕рд╛рде рд╣реА, рдХреНрдпрд╛ рдЗрд╕ рдмреАрдЪ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╕реЗ: http://stackoverflow.com/questions/36354233/protractor-mocking-backend-with-angular2-on-api-requestред

http-backend-proxy рдФрд░ httpbackend рд╕рдВрдХреБрд▓ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдЪ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ docker-compose рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ E2E рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрддрд┐рд░рдВрдЬрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рд╣реИрдВ?

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

https://mdasberg.github.io/ng-apimock/

рд╢рд╛рдпрдж рдЖрдк рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рдорд╢реАрдирд┐рдЬреНрдо рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдХрд▓реА рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрдХреНрд╖ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧрд╛:

рдЪрд╛рдВрджрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЗрди рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдЧрд╛:

  • platformBrowserDynamic().bootstrapModule
  • platformBrowser().bootstrapModuleFactory

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

function bootstrapModuleOverride (moduleToBootstrap) {
  @NgModule({
    imports: [moduleToBootstrap],
    provide: ArrayOfMockModules,
    bootstrap: moduleToBootstrap.bootstrap
  })
  class moduleToBoostrapWrapper {}

  platformBrowserDynamic().bootstrapModule(moduleToBoostrapWrapper);
}

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдЕрдЧрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛рдмрджреНрдз рд░рд┐рд▓реАрдЬ рд╣реИ?

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1ред рд╣рдореЗрдВ рдХреЛрдгреАрдп 2+ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ e2e рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдореЙрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!

рдХреЛрдгреАрдп 2+ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдмрд╣реБрдд рдЬрд░реВрд░реА рд╣реЛрддреА рдЬрд╛ рд░рд╣реА рд╣реИ :)

рд╣рд╛рдБ рдЗрд╕ рд╕рдордп рд╣рдорд╛рд░реЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА angular5 рдкрд░ рд╣реИрдВ рдФрд░ рдЕрднреА рднреА e2e рд╕реНрдкреЗрдХреНрд╕ рдореЗрдВ http рдХрд╛ рдордЬрд╛рдХ рдЙрдбрд╝рд╛рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИрдВ

( @tauil рдЫреЛрдЯреА рджреБрдирд┐рдпрд╛, рд╣реБрд╣?)

рдпрд╣рд╛рдВ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдореБрдЭреЗ addMockModule рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

1) рдХрд╕реНрдЯрдо рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдЗрдВрдЬреЗрдХреНрд╢рдиред
https://angular.io/guide/http#writing -an-interceptor
рдЙрджрд╛рд╣рд░рдг http рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рдХрдмреНрдЬрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрдирд╛ред

2) рддреГрддреАрдп рдкрдХреНрд╖ рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдордЬрд╛рдХ рдЙрдбрд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВред

      .decorator(
          'xyzService',
          [
            '$q', '$delegate',
            ($q, $delegate) => {
              $delegate.isEnabled = () => true;
              return $delegate;
            }
            $delegate.getProfileDetail = () =>
                  $q.when({name: 'Tester 001', title: 'E2E Tester'});
          ])

рдХрд╕реНрдЯрдо рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП: рд╣рдо httpclient рдЯреЗрдореНрдкрд▓реЗрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (1) рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рднреА рд╣рд▓ рдХрд░реЗрдЧрд╛ред

3) рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреГрд╖реНрда рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрд╖реЗрд░ рдирд╣реАрдВ)
рдПрдирдЬреА.рдЬрд╛рдВрдЪ($0)._debugInfo
рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдЗрд╕реЗ рдХрдм рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддрд╛ рд╣реИ!

рдпрд╣ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдпрд╣ рджреЛ рд╕рд╛рд▓ рдкреБрд░рд╛рдиреА рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИ?!

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдмреИрдХ рдПрдВрдб рдХреЙрд▓ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП jswiremock рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢ рд▓рд┐рдЦреЗ рд╣реИрдВ: https://gist.github.com/jamescookie/f7b854226ca1e133d1b7b2798095b7f4

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдиреЙрдХ рд╣реИред
рдпрд╣ рдХрд┐рд╕реА рднреА рдврд╛рдВрдЪреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ, HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдордЬрд╛рдХ рдЙрдбрд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред

рдЖрдк рдПрдирдЬреА-рдПрдкрд┐рдореЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рд╕рд╛рдЗрдЯ рдкрд░ рдореМрдЬреВрдж рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рдПрдХ рдорд╣рд╛рди рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд╣реИ

рдЖрдк рдЗрд╕реЗ AngularJs рдФрд░ Angular рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрд░ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рдПрдирдЬреА-рдПрдкрд┐рдореЙрдХ рдХреЛ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЗ рдХреЛрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред

рдЬрд┐рддрдирд╛ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрддрдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдкрд░ рдХреНрдпрд╛ рдкреНрд░рдЧрддрд┐ рд╣реИ? рдпрд╣ рдЗрд╕ рд╕рдордп рдПрдХ рднрд╛рд░реА рдЕрд╡рд░реЛрдзрдХ рд╣реИред

рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдХреНрдпрд╛ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЛ рдПрдВрдЧреБрд▓рд░ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рддреЛ рдпрд╣ рдЖрдЬ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд╛рдВрджрд╛ рдпрд╛ рдХреЛрдгреАрдп рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЖрдк ng serve рдореЗрдВ "рдирдХрд▓реА" рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯ рдХреА рд╕реЗрд╡рд╛ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдирд┐рд░реНрднрд░ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдмреИрдХрдПрдВрдб рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ HTTP рдкрд░рдд рдкрд░ рдореЙрдХрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рднрдВрдбрд╛рд░ рдмрдирд╛рдпрд╛ рд╣реИ: https://github.com/westonpace/angular-example-mock-services

рдореИрдВ рдпрд╣рд╛рдБ рдПрдХ SO рдкреНрд░рд╢реНрди рдХреЗ рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЪрд░рдгреЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ:

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

рдЗрд╕реЗ рдпрд╣рд╛рдВ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд-рд╕реНрд╡рдЪреНрдЫ-рдкреБрд╕реНрддрдХрд╛рд▓рдп-рд░рд╣рд┐рдд рддрд░реАрдХреЗ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢:

https://stackoverflow.com/questions/36354233/protractor-mocking-backend-with-angular2-on-api-request/51834607#51834607

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ? @ jlin412 рдЖрдкрдиреЗ рдХрд╣рд╛ рдХрд┐ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдФрд░ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕реЛрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рдкрд░ рд╢реБрд░реБрдЖрдд рдХреА рд╣реИ?

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ? @ jlin412 рдЖрдкрдиреЗ рдХрд╣рд╛ рдХрд┐ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдФрд░ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕реЛрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рдкрд░ рд╢реБрд░реБрдЖрдд рдХреА рд╣реИ?

@katiesandford , рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╡рд┐рд╕реНрддреГрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрд╕ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рд╡реЗ рдЖрдЙрдЯрд▓реЗрдпрд░ рдХреНрдпрд╛ рд╣реИрдВ рддрд╛рдХрд┐ рдореИрдВ рднрд╡рд┐рд╖реНрдп рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХреВрдВ

@gabrieldoty рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдореИрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭреВрдВ рддреЛ рдЖрдк рд╕реЗрд╡рд╛ рд╕реНрддрд░ рдкрд░ рдирдХрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди http рд╕реНрддрд░ рдкрд░ рдирд╣реАрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдореЙрдХ рдЧрддрд┐рд╢реАрд▓ рд╣реЛрдВред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рдЪрд░рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдХ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред

@gaeljw рдорд╣рд╛рди рдЕрдВрдХ! рдореИрдВ рдЧрддрд┐рд╢реАрд▓ рдореЛрдХреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдЬреАрдм рддрд░реАрдХреЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреЛрдИ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╕рдорд╛рдзрд╛рди рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛!

рдореЗрд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рднреА HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕ рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд▓рдЧрднрдЧ рдПрдХ рд╕рдЪреНрдЪреЗ http рдирдХрд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд╣реАрдВ рд╣реИред

рдЙрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЦрд╝рдмрд░? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪрд╛рдВрджрд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЕрдм рдЙрддрдирд╛ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд░рд╣рд╛...

рдХреЛрдИ рдЕрдкрдбреЗрдЯреНрд╕?

рдореЙрдХрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ #4300 . рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ

рд╡рд╛рд╣, рдпрд╣ рдЯрд┐рдХрдЯ рдЕрдм рд▓рдЧрднрдЧ 4 рд╕рд╛рд▓ рдкреБрд░рд╛рдирд╛ рд╣реИ! рдХреНрдпрд╛ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИрдВ?

рдХреЛрдИ рдЦрд╝рдмрд░?

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

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

luakri picture luakri  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gamecheck80 picture gamecheck80  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

codef0rmer picture codef0rmer  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adityagautam picture adityagautam  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rafalf picture rafalf  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ