2015-05-28 18 views
6

Trong JUnit (Java), kết quả của phép thử đơn vị là sự thành công, lỗi hoặc lỗi.Kiểm tra Mocha không khớp với AssertionError

Khi tôi cố gắng chạy thử nghiệm với Mocha i, hoặc nhận được lỗi thành công hoặc xác nhận.

Thông thường có được AssertionError cho các thử nghiệm không? (Không nên nó chỉ được gọi là một thất bại và không phải là một lỗi?)

AssertionError: -1 == 2 + dự kiến ​​- thực tế

gì về việc kiểm tra mã không đồng bộ? Khi các bài kiểm tra của tôi thất bại, tôi nhận được một lỗi không? Điều đó có bình thường không?

Như thế này:

của router Lỗi: dự kiến ​​200 để bằng 201

Trả lời

10

Những gì bạn đang mô tả là hành vi bình thường đối với Mocha. Mã này minh họa những gì sẽ xảy ra nếu bạn không cố gắng ngoại lệ bẫy trong mã không đồng bộ (thậm chí nêu ra bởi thất bại khẳng định) và những gì bạn có thể làm nếu bạn muốn tránh thông điệp ngoại lệ còn tự do:

var assert = require("assert"); 

it("fails with uncaught exception", function (done) { 
    setTimeout(function() { 
     assert.equal(1, 2); 
     done(); 
    }, 1000); 
}); 

it("fails with assertion error", function (done) { 
    setTimeout(function() { 
     try { 
      assert.equal(1, 2); 
      done(); 
     } 
     catch (e) { 
      done(e); 
     } 
    }, 1000); 
}); 

Đoạn mã trên tạo này đầu ra:

1) fails 
    2) fails 

    0 passing (2s) 
    2 failing 

    1) fails: 
    Uncaught AssertionError: 1 == 2 
     at null._onTimeout (/tmp/t2/test.js:5:16) 
     at Timer.listOnTimeout [as ontimeout] (timers.js:112:15) 

    2) fails: 
    AssertionError: 1 == 2 
     at null._onTimeout (/tmp/t2/test.js:13:20) 
     at Timer.listOnTimeout [as ontimeout] (timers.js:112:15) 
+0

Bạn hoàn toàn đúng! Tôi chỉ muốn nhận xét rằng Mocha làm việc với thư viện xác nhận bằng cách thất bại khi một ngoại lệ được nêu ra (tôi không biết điều đó). – user3452075

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