我想在我的Angular 2/AngularCLI應用程序中設置一些單元測試。儘管應用程序按預期工作,但測試顯示失敗。因此,要簡單地開始(或者我想),我建立了一個測試組件,它是從命令行生成的(ng g c testr)。這將創建一個基本組件測試以及組件文件。當我將CD放入此組件時,然後使用「ng test」運行此內置測試時,我的應用程序中出現與其他組件相關的錯誤。這讓我感到困惑,因爲我認爲單個組件測試是單元測試 - 因此,只是爲了測試特定組件而設計的。這是該組件的試驗例:組件單元測試沒有測試我的Angular 2應用程序中的組件?
/* tslint:disable:no-unused-variable */
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';
import { TestrComponent } from './testr.component';
describe('TestrComponent',() => {
let component: TestrComponent;
let fixture: ComponentFixture<TestrComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ TestrComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(TestrComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create',() => {
expect(component).toBeTruthy();
});
});
我想這應該是工作「開箱即用」 - 因爲它的設置自動地由AngularCLI。那麼爲什麼失敗?我在這裏錯過了什麼嗎?這裏的測試代碼是不是用來測試內部組件,而不是測試應用程序中與其他組件的關係?
下面是我得到的一個錯誤的例子。顯然它完全是針對不同的組件。而且我只是從運行這一個測試中得到了各種組件的許多錯誤。
ERROR in ./src/app/app.component.ts
Module not found: Error: Can't resolve 'app/app.component.html' in '/Users/mko/Documents/abc-cli/abc-cli/cli-abc/src/app'
@ ./src/app/app.component.ts 77:22-55
@ ./src/app/app.component.spec.ts
@ ./src \.spec\.ts
@ ./src/test.ts
這裏再次涉及到不同的組件另一個錯誤:
ERROR in ./src/app/views/client/client-panel.component.ts
Module not found: Error: Can't resolve 'app/views/client/client-panel.component.html' in '/Users/mko/Documents/abc-cli/abc-cli/cli-abc/src/app/views/client'
@ ./src/app/views/client/client-panel.component.ts 34:22-88
@ ./src/app/views/client/client-panel.component.spec.ts
@ ./src \.spec\.ts
@ ./src/test.ts
如果我cd到一個組件和運行「NG測試」,並或不,不是隻運行該組件的單元測試?而且,如果不是,我需要更改哪些內容才能進行個別組件測試,而不是全部?
是的,只是在上面添加它。我收到其他組件的錯誤消息除此之外也是如此。不知道爲什麼。 – Muirik
對不起,請澄清。如果我進入一個組件並運行「ng test」,那麼它會不會只運行該組件的單元測試?而且,如果不是,我需要更改哪些內容才能進行個別組件測試,而不是全部? – Muirik