2017-01-31 14 views
10

Tôi muốn đặt giá trị thời gian chờ trước khi móc trong các trường hợp thử nghiệm mocha. Tôi biết tôi có thể làm điều đó bằng cách thêm -t 10000 vào dòng lệnh của mocha nhưng điều này sẽ thay đổi mọi giá trị thời gian chờ của các trường hợp thử nghiệm. Tôi muốn tìm một cách để thay đổi thời gian chờ lập trình dưới đây là mã của tôi:Cách đặt thời gian chờ trước khi móc trong mocha?

describe('test ',() => { 

    before((done) => { 
     this.timeout(10000); 
     ... 

nó sẽ phàn nàn về dòng this.timeout(1000) rằng timeout không được định nghĩa. Cách đặt thời gian chờ trước khi móc.

Trả lời

23

Bạn cần đặt thời gian chờ trong khối describe thay vì trong móc nếu bạn muốn nó ảnh hưởng đến tất cả các thử nghiệm trong describe. Tuy nhiên, bạn cần phải sử dụng một chức năng "bình thường" như gọi lại để describe chứ không phải là một chức năng mũi tên:

describe('test', function() { 
    this.timeout(10000); 

    before(...); 

    it(...); 
}); 

Trong tất cả những nơi mà bạn muốn sử dụng this trong một callback bạn vượt qua để Mocha bạn không thể sử dụng một mũi tên chức năng. Bạn phải sử dụng chức năng "thông thường" có giá trị this riêng có thể được đặt bởi Mocha. Nếu bạn sử dụng một chức năng mũi tên, giá trị của this sẽ không phải là những gì Mocha muốn nó được và mã của bạn sẽ thất bại.

Bạn thể thiết lập một thời gian chờ khác nhau cho móc trước khi bạn nhưng có hai điều cần xem xét:

  1. Ở đây cũng vậy bạn sẽ cần phải sử dụng một chức năng "bình thường" chứ không phải là một chức năng mũi tên để :

    before(function (done) { 
        this.timeout(10000); 
    
  2. Điều này sẽ chỉ đặt thời gian chờ cho móc before và sẽ không ảnh hưởng đến thử nghiệm của bạn.

+0

câu trả lời hoàn hảo :) – greuze

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