2013-11-21 14 views
10

Chỉ cần nâng cấp lên nhài 2.0 RC5 từ 1.3 và bây giờ tất cả các xét nghiệm của tôi rằng sử dụng waits() bị phá vỡ vì waits()waitsFor() chức năng là không xác định. Tôi dường như không thể tìm thấy bất kỳ tham chiếu đến bất cứ nơi nào trực tuyến, là bất cứ ai nhận thức được API mới để thay thế wait() là gì?Jasmine 2.0 rc * chờ đợi không được định nghĩa

Trả lời

13

Vâng, cú pháp sử dụng cho các cuộc gọi không đồng bộ đã thay đổi. Bạn có thể dễ dàng nhận thấy sự khác biệt giữa hai phiên bản trong các tài liệu của nó:

Jasmine 1.3 Asynchronous support sử dụng waitsFor()run() chức năng.

Theo Jasmine 2.0 Asynchronous support, các chức năng này đã bị xóa khỏi thư viện. Tuy nhiên, Jasmine 2.0 thêm hỗ trợ không đồng bộ cho các hàm beforeEach(), afterEach()it() nguyên thủy. Các hàm gọi lại được truyền cho các hàm này bây giờ có thể lấy một đối số cho biết liệu spec có thể hoặc không thể chạy.

Sau đó, khi bạn đạt đến các điều kiện cần thiết để chạy thử nghiệm của bạn (bất cứ khi nào công việc không đồng bộ của bạn hoàn tất), bạn chỉ cần gọi done(). Và tất cả sự kỳ diệu xảy ra;)

Từ các tài liệu:

describe("Asynchronous specs", function() { 
    var value; 

    beforeEach(function(done) { 
     setTimeout(function() { 
      value = 0; 
      done(); 
     }, 1); 
    }); 

    it("should support async execution of test preparation and expectations", function(done) { 
     value++; 
     expect(value).toBeGreaterThan(0); 
     done(); 
    }); 
}); 

Các it() đặc tả ở trên sẽ chỉ chạy sau khi setTimeout() cuộc gọi, vì done() được gọi là có. Lưu ý cuộc gọi lại it() có một đối số (done).

+0

Gọn gàng, không thấy rằng tài liệu 2.0 đã hết! Cảm ơn con trỏ – silkAdmin

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