Tôi có API RESTful và bây giờ tôi đang phát triển một ứng dụng angular2 sử dụng dịch vụ dữ liệu để gọi API. Sau đó tôi muốn thực hiện các bài kiểm tra kết thúc đến cuối bằng cách sử dụng thước đo góc. Tôi muốn bắt đầu ở cấp độ rất thấp, vì vậy tôi đã thực hiện các bài kiểm tra để kiểm tra xem các thành phần của tôi có hiện diện hay không khi nhấp vào một liên kết. Bài kiểm tra có dạng như sau:Thước đo tiếp tục chờ các yêu cầu HTTP đã hoàn thành
describe('my-webclient',() => {
it('app should load',() => {
browser.get('/');
expect(element(by.css('my-app')).isPresent()).toBe(true);
});
it('app should have a top navigation',() => {
expect(element(by.css('my-nav-top')).isPresent()).toBe(true);
});
it('app should have a side navigation',() => {
expect(element(by.css('my-nav-side')).isPresent()).toBe(true);
});
it('app should have a content',() => {
expect(element(by.css('my-content')).isPresent()).toBe(true);
});
it('app should load the overview for route "/"',() => {
expect(element(by.css('my-overview')).isPresent()).toBe(true);
});
});
Vấn đề là thành phần tổng quan yêu cầu HTTP trong một số dịch vụ dữ liệu. Protractor sau đó sẽ chặn mãi mãi, mặc dù các yêu cầu HTTP đã được hoàn thành từ lâu.
Khi tôi theo dõi thử nghiệm, tôi có thể xem cách ứng dụng tải, bao gồm tất cả dữ liệu được tìm nạp từ API của tôi. Sau đó, không có gì xảy ra và thước đo góc cuối cùng sẽ sụp đổ, nói rằng thời gian chờ đã đạt được.
Các thông báo lỗi chính xác là:
Failed: Timed out waiting for Protractor to synchronize with the page after 11 seconds. Please see https://github.com/angular/protractor/blob/master/docs/faq.md
While waiting for element with locator - Locator: By(css selector, my-app)
Trong khi tìm kiếm sự giúp đỡ trên google, tôi đi qua một vài gợi ý rằng thước đo sẽ đợi góc để kết thúc tất cả mọi thứ. Vâng, đây là chính xác những gì tôi muốn. Khi tôi theo dõi tab mạng trong các công cụ dành cho nhà phát triển của chrome (F12), thì không có gì xuất hiện ngay sau khi ứng dụng đã tải. Vì vậy, không có thêm yêu cầu đang chờ xử lý hoặc bất cứ điều gì cho thước đo góc chờ đợi. Tuy nhiên, nó có, và tôi chỉ không biết tại sao.
Vì vậy, đây là câu hỏi của tôi: Tôi có phải xem xét bất kỳ điều gì đặc biệt khi xử lý các dịch vụ dữ liệu đưa ra các yêu cầu HTTP không? Hoặc: Tôi có thể làm gì để gỡ lỗi tại sao thước đo góc vẫn chờ cho đến khi hết thời gian chờ.
Nhân tiện, nó chắc chắn là dịch vụ dữ liệu. Nếu tôi nhận xét tất cả mọi thứ bên trong OverviewComponent::ngOnInit
, thì các bài kiểm tra sẽ chỉ trôi qua và cách tôi mong đợi.
Cảm ơn câu trả lời phức tạp này! – CharlyDelta
Các plunk dường như không hoạt động nữa – studds
Nên làm việc ngay bây giờ, cổ vũ. –