typescript - Hur skriver man ut ett debugmeddelande i ett Angular-test?
Redigering: den här frågan är helt fel eftersom Angular INTE anropar http-förfrågan i enhetstestet. Du kan inte skriva ut det verkliga svaret på begäran. Enhetstestet "fejkar" svaret på förfrågan och sätter sedan i verket. Om du ställer samma fråga som jag, vänligen läs dokumentationen om Angular-enhetstestet igen.
Jag vill console.log("my text") eller något liknande i unittest.
the-cat-api.service.ts
import { Injectable } from '@angular/core';
import {HttpClient} from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class TheCatApiService {
private catApi="05f72f39-87d9-4166-b4f1-6dfb55db1744"
private REST_API = "https://api.thecatapi.com/v1/images/search?api_key="
constructor(private httpClient: HttpClient) { }
getCat(){
return this.httpClient.get(this.REST_API + this.catApi);
}
}
the-cat-api.service.spec.ts
import { TestBed } from '@angular/core/testing';
import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
import {HttpClientModule} from '@angular/common/http';
import { TheCatApiService } from './the-cat-api.service';
describe('TheCatApiService', () => {
let service: TheCatApiService;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [TheCatApiService]
});
service = TestBed.inject(TheCatApiService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
it('should return cat', () =>{
service.getCat().subscribe((data) => {
console.log("test the cat api ")
console.log(data)
})
})
});
När jag kör ng test visas det
➜ learn-service git:(master) ✗ ng test
10% building 2/2 modules 0 active24 07 2020 13:58:33.558:WARN [karma]: No captured browser, open http://localhost:9876/
24 07 2020 13:58:33.562:INFO [karma-server]: Karma v5.0.9 server started at http://0.0.0.0:9876/
24 07 2020 13:58:33.563:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
24 07 2020 13:58:33.567:INFO [launcher]: Starting browser Chrome
24 07 2020 13:58:39.580:WARN [karma]: No captured browser, open http://localhost:9876/
24 07 2020 13:58:39.724:INFO [Chrome 84.0.4147.89 (Linux x86_64)]: Connected on socket MWHJE0_oK6DZDg3_AAAA with id 30651510
WARN: 'Spec 'TheCatApiService should return cat' has no expectations.'
Chrome 84.0.4147.89 (Linux x86_64): Executed 5 of 6 SUCCESS (0 secs / 0.276 secs)
Chrome 84.0.4147.89 (Linux x86_64): Executed 6 of 6 SUCCESS (0.409 secs / 0.282 secs)
Jag kontrollerar utvecklarkonsolen i Chrome (Karma testframework) och ser ingen konsollogg.
Svar #1
Se den här tråden för mer information:
https://github.com/karma-runner/karma-mocha/issues/47
karma.conf.js:
client: {
captureConsole: true,
mocha: {
bail: true
}
}
Svar #2
Denna fråga är helt fel eftersom Angular INTE anropar http-förfrågan i enhetstest. Du kan inte skriva ut det verkliga svaret från förfrågan. Enhetstestet "förfalskar" svaret från förfrågan och sätter sedan in det på plats. Om du stöter på samma fråga som jag gjorde, vänligen läs dokumentationen om Angular-enhetstest igen.
https://angular.io/guide/http#testing-http-requests
