ile köşeli 4 arkadan geliştirmeye geçiş Http'den HttpClient'e geçmeden önce, MockBacked kullanarak arkadan bağımsız bir kurulum yaptım. Yeni HttpClient
import {
Http, BaseRequestOptions, Response, ResponseOptions,
RequestMethod, XHRBackend, RequestOptions
} from '@angular/http';
import { MockBackend, MockConnection } from '@angular/http/testing';
import { subscribers } from '../jsons/subscribers.json';
import { TokenService } from '../../authentication/token.service';
export function mockBackendFactory(backend: MockBackend, options: BaseRequestOptions,
realBackend: XHRBackend) {
// configure fake backend
backend.connections.subscribe((connection: MockConnection) => {
// wrap in timeout to simulate server api call
setTimeout(() => {
let url = connection.request.url;
let method = connection.request.method;
if (url.endsWith('/demographic/subscriber') && method === RequestMethod.Get) {
let tokenService: TokenService = new TokenService();
// get username from token
let username = tokenService.getUsername();
// find if any subscriber matches login credentials
let filteredSubscriber = subscribers.filter(subscriber => {
return subscriber.username === username;
});
// check to see if the user exists
if (filteredSubscriber.length) {
let subscriber = filteredSubscriber[0];
connection.mockRespond(new Response(new ResponseOptions({
status: 200,
body: {
"subscriber": {
"id": subscriber.id,
"firstName": subscriber.firstName,
"lastName": subscriber.lastName,
"username": subscriber.username,
"preferredEmail": subscriber.preferredEmail
}
}
})));
} else {
// else return 400 bad request
connection.mockError(new Error('Unauthorized'));
}
return;
}, 500);
});
return new Http(backend, options);
}
export let MockBackendProvider = {
provide: Http,
useFactory: mockBackendFactory,
deps: [MockBackend, BaseRequestOptions, XHRBackend]
};
ve benim core.module.ts içinde
ben "sağlayıcılar" bölümünde MockBackendProvider koyardı dosyası: Ben benziyordu sahte-backend.provider.ts adlı bir dosya vardı.Bu, json yanıtlarını çok hızlı bir şekilde almamı sağlar ve bu sağlayıcıyı bir ortam değişkenine göre değiştirmeye ayarlamıştım.
HttpClient'i kullanmaya başladığımda, arka uçbirim alan HttpHandler kullanan bir arka uç parametresi artık almıyor, ancak MockBackend'i kabul edemiyorum.
Geçerli kurulumumun HttpClient kullanılarak yapılabileceğine inanmıyorum ve bununla tamam değilim, ancak yeni modüller ile arka uç akışının nasıl ayarlanacağı konusunda hiçbir fikrim yok.
Her türlü yardım delice takdir edilecektir! Daha fazla kod görmeniz gerekiyorsa lütfen bana bildirin.
Merhaba Shawn:
Ben bu çalışma var nasıl görmek istiyorum herkes için bir örnek yukarı alay var? Testte nasıl yapılacağına sadece kaynakları buldum, ama nasıl yeniden yapılandıracağımı değil. İdeal olarak, “çevre” ayarlarını üretim, geliştirme-alay ve arka arkaya geliştirme ile geçiş yapmak için kullanmak istiyorum. – skofgar
@skofgar Çözümü bir cevap olarak gönderdim. Ödeme benim örneğim. Kurulumumla ilgili soruları yanıtlamaktan mutluluk duyarım. –
Teşekkürler Shawn! Müdahalecilere de bakmaya başladım, ama yaptığınız kadar uzağa gitmedim. Çözümünüzü sağladığınız için teşekkürler! – skofgar