2017-01-10 20 views
8

Tôi đã tạo trang đăng nhập bằng cách sử dụng angular2. Nó có hai trường nhập là userNamepassword. Và có một nút trong thông tin đăng nhập đó. Khi tôi viết trường hợp thử nghiệm cho số loginComponent, phải sử dụng predicate để nhận dạng button. Đây là trường hợp thử nghiệm của tôi.Cách sử dụng vị từ trong angular2

import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 
import { By } from '@angular/platform-browser'; 
import { DebugElement } from '@angular/core'; 
import { LoginComponent } from './login.component'; 


export class LoginComponentTest { 
    constructor(public loginComponent: LoginComponent){ 
    this.loginComponent.logIn('Chathura', '1234'); 

    } 
} 

describe('LoginComponent',() => { 
    beforeEach(() => { 
    TestBed.configureTestingModule({ 
     declarations: [ 
     LoginComponent 
     ], 
    }) 
    }); 

    const fixture = TestBed.createComponent(LoginComponent); 

    const button = fixture.query(predicate: Predicate<DebugElement>, scope?: Function) : DebugElement 

}); 

Tôi sẽ kiểm tra bằng cách cung cấp giá trị đầu vào, sau đó nhấp vào nút đăng nhập và xem điều gì sẽ xảy ra tiếp theo.

Tôi không thể tìm thấy hướng dẫn chính xác để sử dụng vị từ chính xác.

Trả lời

3

Cách dễ nhất để tạo Predicate là sử dụng một trong các phương pháp tĩnh By tĩnh, tức là css, directive.

const button = fixture.debugElement.query(By.css('.the-button')).nativeElement; 

By.css để bạn vượt qua bất kỳ bộ chọn css nào. Kết quả của query sẽ là DebugElement, vì vậy bạn cần có được nativeElement nếu bạn muốn tương tác với phần tử DOM gốc.

+0

Tôi biết sử dụng 'By.css ('. The-button')' nhưng vấn đề là nếu có một bộ nút thì khó nhận ra từng nút. Đó là cách chúng ta có thể ?. Tốt hơn nếu có một hàm để gọi 'id'. – hennamusick

+1

Cần sử dụng đúng bộ chọn. Bạn biết làm thế nào để chọn nút cụ thể bằng cách sử dụng css? Đây là công cụ css cơ bản. Không liên quan đến Angular. Phương thức 'css' có thể lấy bất kỳ bộ chọn css nào. Nếu bạn không chắc chắn về cách để làm điều đó, sau đó bạn có thể làm cho nó dễ dàng hơn và chỉ cần cung cấp cho các nút một id. Sau đó, bạn chỉ có thể làm 'css ('# nút-id')' –

+0

Cảm ơn. Nó đang làm việc. – hennamusick

Các vấn đề liên quan