2012-01-13 31 views
17

Tôi đã học TDD/BDD bằng MiniTest. Những gì tôi đang cố gắng tìm ra là những gì các phần của mã của tôi nên được thử nghiệm với MiniTest :: Unit :: TestCase và những phần nào cần được kiểm tra bằng cách sử dụng MiniTest :: Spec.Khi nào tôi sử dụng MiniTest :: Unit :: TestCase so với MiniTest :: Spec?

Tôi hiểu sự khác biệt giữa thử nghiệm đơn vị và thử nghiệm tích hợp, những gì tôi không thể nắm bắt từ ví dụ trên web là liệu TestCase và Spec có là cả hai kiểm tra đơn vị hay không. kiểm tra và một Spec được sử dụng để thử nghiệm tích hợp?

Tôi có nên tiếp tục kiểm tra đơn vị nhanh trong các lớp MiniTest :: Unit :: TestCase và thử nghiệm tích hợp lâu hơn, thường mô tả các tính năng, trong MiniTest :: Spec expect? Liệu nó có quan trọng không, hay nó là một câu hỏi về sở thích cá nhân?

Trả lời

4

Cho dù tôi sử dụng MiniTest::Unit (với assertions) so với MiniTest::Spec, được xác định bởi người tôi viết thư cho họ.

Đối với mã tôi tự viết, không có bất kỳ yêu cầu "khách hàng" nào, tôi muốn sử dụng MiniTest :: Unit. Các bài kiểm tra có ý nghĩa đối với tôi và đọc chúng là rất ngắn gọn và quan trọng.

Nếu tôi viết mã cho khách hàng có danh sách các yêu cầu, tôi sẽ sử dụng MiniTest :: Spec. Các tệp spec có thể đọc được nhiều hơn đối với một người không lập trình.


Lưu ý: MiniTest trải qua một cuộc đại tu năm ngoái vì vậy một số các tên mô-đun thay đổi nhưng ý tưởng là như nhau, MiniTest hỗ trợ một cách ngắn gọn hơn, hoặc tiết hơn, các bài kiểm tra đơn vị bằng văn bản.

+0

Vì vậy, về cơ bản chúng có hai cách khác nhau để làm điều tương tự? Chỉ cần cú pháp khác ...? – Mohamad

+0

Khá nhiều. Có một số "ngôn ngữ" khác nhau để viết các bài kiểm tra đơn vị, và chúng đun sôi xuống theo những cách khác nhau để nói cùng một điều. Họ thêm các lớp khác nhau của verbosity, nhằm vào các loại khác nhau của người dân. Các nhà phát triển có xu hướng thích sự terseness của các bài kiểm tra đơn vị chung với xác nhận. Đối với người quản lý dự án và/hoặc khách hàng không "nói chuyện lập trình", Spec hoạt động tốt hơn hoặc sử dụng nội dung nào đó có cùng nội dung theo thuật ngữ phổ biến hơn. –

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