2012-02-13 29 views
9

Tôi đang cố gắng quyết định có chuyển đổi từ Vows sang Mocha cho ứng dụng Node lớn hay không.Tôi có nên chuyển từ Lời thề sang Mocha không?

Tôi đã tận hưởng hầu như tất cả các trải nghiệm của Vows - nhưng chỉ có điều gì đó kỳ lạ về cuộc tranh cãi. Tôi luôn phải gãi đầu để nhớ các chủ đề hoạt động như thế nào, và điều đó ảnh hưởng đến những điều cơ bản của việc thực hiện các bài kiểm tra. Nó đặc biệt có vấn đề về các bài kiểm tra không đồng bộ lồng nhau sâu sắc. Mặc dù tôi thấy rằng việc kết hợp Vows với async.js có thể giúp một chút.

Vì vậy, Mocha có vẻ linh hoạt hơn trong báo cáo của nó. Tôi thích tự do lựa chọn kiểu thử nghiệm & quan trọng là nó cũng chạy trong trình duyệt, điều này sẽ rất hữu ích. Nhưng tôi lo lắng rằng nó vẫn không giải quyết được vấn đề dễ đọc cho các bài kiểm tra không đồng bộ lồng nhau sâu sắc.

Có ai có lời khuyên thực tế nào không - Mocha có thể thực hiện các bài kiểm tra lồng nhau sâu sắc có thể đọc được không? Tui bỏ lỡ điều gì vậy?

+0

Không nghi ngờ gì, vâng. – Raynos

Trả lời

8

Mocha là ace. Nó cung cấp một gọi lại thực hiện, chứ không phải là waitsFor hoa nhài đó cung cấp. Tôi không thể nói về di cư từ lời thề nhưng từ hoa nhài nó thẳng về phía trước. Bên trong hàm mocha test, bạn có thể sử dụng async nếu muốn (hoặc Seq vv .. nếu bạn muốn thừa kế) mặc dù nếu bạn yêu cầu gọi lại lồng nhau tại thời điểm đó, kiểm thử tích hợp có thể khiến bạn suy nghĩ về mức độ chi tiết của các bài kiểm tra .

Cựu ước: phạm vi kiểm tra 100% hiếm khi mang lại bất kỳ giá trị nào.

+0

Cảm ơn điểm tốt. Có thể bạn đúng về mức độ chi tiết - mọi thứ có thể được chia nhỏ hơn một chút. Nhưng tôi thường thấy những trường hợp nói rằng 3 hoặc 4 tổ là cần thiết cho bài kiểm tra và tôi muốn nó dễ đọc hơn. Có lẽ có một cách để kết thúc hàm mô tả bằng cách nào đó .. –

3

Kiểm tra lồng nhau sâu sắc được giải quyết bằng cách sử dụng điều khiển luồng trong bộ kiểm tra đơn vị của bạn.

Lời thề không cho phép điều này dễ dàng vì kiểu xuất khẩu yêu cầu tạo thư viện điều khiển luồng hỗ trợ điều này.

Hoặc viết thư viện điều khiển luồng cho lời thề hoặc chuyển sang mocha và sử dụng lại thư viện điều khiển luồng hiện có.

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