νμ¬ Angular 2 μ ν리μΌμ΄μ μ λͺ¨μ λͺ¨λμ μΆκ°νλ κ²μ λΆκ°λ₯ν©λλ€.
μ΄ λ¬Έμ λ μ¬κΈ° μ κ²μλ TODOλ₯Ό λ°μν©λλ€.
κ·Έλ¦¬κ³ κ΄λ ¨ SO κ²μλ¬Όμ μνΈ μ°Έμ‘°νλ €λ©΄ http://stackoverflow.com/questions/36354233/protractor-mocking-backend-with-angular2-on-api-requestλ₯Ό μ°Έμ‘°νμμμ€.
κ°μ¬ν©λλ€.
@juliemr Angular 2μ λν΄ mockμ μ§μν κ³νμ λκΉ? κ·Έλ λ€λ©΄ μΈμ ? νμ΄λΈλ¦¬λ λͺ¨λλ₯Ό μ¬μ©νλ©΄ κ·Έ λμμλ mockμ΄ κ³μ μλν©λκΉ?
@jlin412 λ€, κ²°κ΅μλ μ‘°μ¬κ° νμνμ§λ§ aotμ non-aot λͺ¨λμμ μ΄λ»κ² μλνλμ§ μ‘°μ¬νκ³ μ μ€νκ² μκ°ν΄μΌ ν©λλ€. νμ΄λΈλ¦¬λλ₯Ό μ¬μ©νλ κ²½μ° ng1 λΉνΈμ λν΄ κ³μ μλν©λλ€.
λ€λ₯Έ λͺ¨λ μ¬μ©μ - +1 λ¬Έμ μ λν΄ githubμ μ΄λͺ¨ν°μ½ μλ΅μ μ¬μ©νμΈμ. μ£Όμμ μΆκ°νλ©΄ μ€μ μ§ν μν©μ ꡬ문 λΆμνκΈ° μ΄λ ΅μ΅λλ€. μ½μ μ μλλ‘ μ΄λ¬ν μ£Όμμ μ κ±°νκ² μ΅λλ€. κ°μ¬ ν΄μ!
@juliemr Angular 2μ λν λͺ¨μ ꡬνμ λν ETAκ° μμ΅λκΉ?
λν κ·Έ λμ μ¬μ©ν μ μλ λμμ΄ μμ΅λκΉ?
λ°μ : 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μ λλ€. Angular 2+ μ ν리μΌμ΄μ μ e2e ν μ€νΈμμ λͺ¨μκ° νμν©λλ€!
Angular 2+κ° μ±μ₯νκ³ μμ΄μ μ΄ κΈ°λ₯μ΄ μλΉν μκΈν΄μ§κ³ μμ΅λλ€ :)
μ, νμ¬ μν¬νλ‘μ μ λμ μΌλ‘ μ€μν©λλ€.
μ°λ¦¬λ μ΄λ―Έ angular5μ μκ³ μ¬μ ν e2e μ¬μμμ httpλ₯Ό μ‘°λ‘±ν μ μμ΅λλ€ π
( @tauil μμ μΈμ, μ?)
.NETμ© 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) κ°λ³ νμ΄μ§ κ°μ²΄ λ΄λΆμ λν μ‘μΈμ€(μ κ²°ν κ²μ μλ)
ng.probe($0)._debugInfo
κ°λκΈ° μ€ν μ€ν¬λ¦½νΈ
μΈμ μνλλμ?
μ λ§ μ΄κ²μΌλ‘ ν μ μμ΅λλ€!
μ΄κ±΄ κΌ μμ΄μΌ ν κΈ°λ₯μΈλ° μ΄λ»κ² 2λ μ΄ λκ±°μΌ?!
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ jswiremockμ μ¬μ©νμ¬ λ°±μλ νΈμΆμ μ κ±°ν μ μμ΅λλ€. μ¬κΈ°μ λͺ κ°μ§ μ§μΉ¨μ μμ±νμ΅λλ€. https://gist.github.com/jamescookie/f7b854226ca1e133d1b7b2798095b7f4
λ λ€λ₯Έ λμμ λ
Έν¬ μ
λλ€.
μ΄λ€ νλ μμν¬μλ μμ‘΄νμ§ μκ³ HTTP μμ²μ μ‘°λ‘±νκΈ° μν λ²μ© λΌμ΄λΈλ¬λ¦¬μ
λλ€.
κ°λκΈ° μ¬μ΄νΈ μ μ΄λ―Έ μλ ng-apimock μ μ¬μ©ν μ μμ΅λλ€. μ¬κΈ° μ λν νλ₯ν λΈλ‘κ·Έ κ²μλ¬Όμ΄ μμ΅λλ€.
AngularJ λ° Angular μ±μ μ¬μ©ν μ μμ΅λλ€.
μ΄ κΈ°λ₯μ ng-apimockμ΄ κ°λκΈ°μ ν΅μ¬ λΌμ΄λΈλ¬λ¦¬μ λ°©κΈ ν¬ν¨λ κ²½μ°μλ ν΅μ¬ κ°λκΈ°μ μΌλΆμ¬μΌ νλ€κ³ μκ°νκΈ°μ μΆ©λΆν μ€μν©λλ€.
μ΅λν μμ§μκ°λ½μ μΉμΌμΈμ°λ €κ³ νλλ° μ΄ κΈ°λ₯μ μ§ν μν©μ μ΄λ»μ΅λκΉ? νμ¬λ‘μλ κ°λ ₯ν μ°¨λ¨κΈ°μ λλ€.
μ§μ§νκ², κ°λκΈ°κ° Angularλ₯Ό μν΄ λ²λ €μ‘μ΅λκΉ?
λ°λΌμ μ΄κ²μ μ€λλ κ°λκΈ° λλ κ°λλ₯Ό λ³κ²½νμ§ μκ³ λ λΆλΆμ μΌλ‘ μνν μ μμ΅λλ€. λ€λ₯Έ λͺ¨λ μΈνΈλ₯Ό μ 곡ν ng serve
μ λν "λͺ¨μ" ꡬμ±μ μμ±ν μ μμ΅λλ€. μ΄λ κ² νλ©΄ μ’
μ μλ²λ₯Ό μ€ννμ§ μκ³ λ λ°±μλ ν
μ€νΈλ₯Ό μνν μ μκ³ HTTP κ³μΈ΅μμ μ‘°λ‘±μ ꡬνν νμκ° μμ΅λλ€. https://github.com/westonpace/angular-example-mock-services μμ μ΄κ²μ 보μ¬μ£Όλ μμ μ μ₯μλ₯Ό λ§λ€μμ΅λλ€.
λν μ¬κΈ°μμ SO μ§λ¬Έμ λν λ΅λ³μ νμν λ¨κ³λ₯Ό κ°λ΅νκ² μ€λͺ ν©λλ€. https://stackoverflow.com/questions/39942118/how-to-inject-different-service-based-on-certain-build-environment-in-angular2 /51772549#51772549
Angular 1μμμ²λΌ μ½κ³ /μ¬μ©μ μ μν μ μμ§λ§(μ: λ€λ₯Έ ν μ€νΈμ λν΄ λ€λ₯Έ λͺ¨μ μλΉμ€λ₯Ό μΆκ°ν μ μμ) μ€μΊν΄λ©μ΄ μ€νλκ³ λλ©΄ λͺ¨μ μλΉμ€ μΆκ° λ° μ κ±°κ° λ§€μ° κ°λ¨ν΄μΌ ν©λλ€.
μ¬κΈ°μμ μ΄κ²μ μ²λ¦¬νλ λΉ λ₯΄κ³ κΉ¨λν λΌμ΄λΈλ¬λ¦¬ μλ λ°©λ²μ μμ½:
μ΄μ λν μ λ°μ΄νΈκ° μμ΅λκΉ? @jlin412 μ‘°μ¬μ μ μ€ν μκ°μ΄ νμνλ€κ³ νμ ¨λλ° μμνμ ¨λμ?
μ΄μ λν μ λ°μ΄νΈκ° μμ΅λκΉ? @jlin412 μ‘°μ¬μ μ μ€ν μκ°μ΄ νμνλ€κ³ νμ ¨λλ° μμνμ ¨λμ?
@katiesandford , μ¬κΈ° μ μμΈν μ€λͺ λ μ κ·Ό λ°©μμ΄ μ΄ μ€μ μμ λλΆλΆμ ν μ€νΈ μν©μ μμ©ν κ²μ΄λΌκ³ λ―Ώμ΅λλ€. κ·Έλ μ§ μμ κ²½μ° ν₯ν μν©μ λν΄ μκ°ν μ μλλ‘ ν΄λΉ μ΄μκ°μ΄ 무μμΈμ§ μκ³ μΆμ΅λλ€.
@gabrieldoty μ΄ μ κ·Ό λ°©μμ μ¬μ©νλ©΄ μλΉμ€ μμ€μμλ μ‘°λ‘±ν μ μμ§λ§ μ μ΄ν΄νλ©΄ http μμ€μμλ μ‘°λ‘±ν μ μμ΅λλ€.
λν νλ μ€μ¬ κ°λ° μ κ·Ό λ°©μμμλ λͺ¨μ κ°μ²΄κ° λμ μ΄κΈ°λ₯Ό μν©λλ€. λ€λ₯Έ ν
μ€νΈ λ¨κ³λ λ€λ₯Έ λͺ¨μλ₯Ό μ€μ ν©λλ€. μ΄ μ€μ μΌλ‘ λ¬μ±νκΈ° μ΄λ €μ΄ κ² κ°μ΅λλ€.
@gaeljw μ’μ ν¬μΈνΈ! λμ λͺ¨μ κ°μ²΄λ₯Ό μ²λ¦¬νλ λ€μ ν¬λ°ν λ°©λ²μ λ³Ό μ μμ§λ§ μμ¬μ μ¬μ§ μμ΄ λμ μ루μ μ΄ λ°λμ§ν κ²μ λλ€!
λ΄ μμ© νλ‘κ·Έλ¨μ λͺ¨λ HTTP μμ²μ μ²λ¦¬νκΈ° μν΄ λ¨μΌ λ°μ΄ν° μλΉμ€ ν΄λμ€λ§ μ¬μ©νλ―λ‘ ν΄λΉ μλΉμ€λ₯Ό κ΅μ²΄νλ κ²μ μλΉν μ½μ΅λλ€. κ·Έλ¬λ κ·Έκ²μ μ§μ ν http λͺ¨μλ§νΌ 보νΈμ μ΄μ§ μμ΅λλ€.
κ·Έλ° μκ°μ ν΄μ£Όμ μ κ°μ¬ν©λλ€!
μ΄κ²μ λν μμμ΄ μμ΅λκΉ? κ°λκΈ° κ°λ°μ΄ λ μ΄μ νλ°νμ§ μμ κ² κ°μ΅λλ€...
μ΄λ€ μ λ°μ΄νΈ?
μ‘°λ‘± λͺ¨λμ #4300μ λλ¬λ³΄λ λ° λμμ΄ λ©λλ€.
μ, μ΄ ν°μΌμ μ΄μ κ±°μ 4λ μ΄ λμμ΅λλ€! μ λ°μ΄νΈκ° μμ΅λκΉ?
μμμ΄ μλμ?
κ°μ₯ μ μ©ν λκΈ
@jlin412 λ€, κ²°κ΅μλ μ‘°μ¬κ° νμνμ§λ§ aotμ non-aot λͺ¨λμμ μ΄λ»κ² μλνλμ§ μ‘°μ¬νκ³ μ μ€νκ² μκ°ν΄μΌ ν©λλ€. νμ΄λΈλ¦¬λλ₯Ό μ¬μ©νλ κ²½μ° ng1 λΉνΈμ λν΄ κ³μ μλν©λλ€.
λ€λ₯Έ λͺ¨λ μ¬μ©μ - +1 λ¬Έμ μ λν΄ githubμ μ΄λͺ¨ν°μ½ μλ΅μ μ¬μ©νμΈμ. μ£Όμμ μΆκ°νλ©΄ μ€μ μ§ν μν©μ ꡬ문 λΆμνκΈ° μ΄λ ΅μ΅λλ€. μ½μ μ μλλ‘ μ΄λ¬ν μ£Όμμ μ κ±°νκ² μ΅λλ€. κ°μ¬ ν΄μ!