5

Gần đây tôi đã xem Integration Tests are a Scam bởi J. B. Rainsberger và hiện đang tìm kiếm thêm tài liệu về chủ đề này. Tôi phải nói, tôi bị sốc bởi bao nhiêu chúng tôi đang làm sai, (tức là thử nghiệm tích hợp khi chúng ta nên kiểm tra đơn vị), hấp dẫn bởi các khái niệm được mô tả bởi Rainsberger nhưng cũng bối rối về cách áp dụng chúng. Tôi muốn có thêm các bài kiểm tra hợp tác và kiểm tra hợp đồng được mô tả nhưng tôi không biết bắt đầu từ đâu.Xóa "lừa đảo kiểm tra tích hợp" - Tìm hiểu về thử nghiệm hợp tác và hợp đồng

Những điều duy nhất mà đã bị mắc kẹt trong tâm trí tôi là 4 câu hỏi các bài kiểm tra cần phải đặt câu hỏi:

Side A:

Do I ask the right question? 
Can I deal with the answer? 

Side B:

Can I answer a question? 
Do I answer correctly? 

Nhưng làm thế nào để áp dụng điều này cho một số phương pháp ngẫu nhiên trong ngăn xếp ứng dụng của tôi?

Có sách hay hướng dẫn hay ví dụ ngoài kia lấy ví dụ về thế giới thực và áp dụng những ý tưởng này của các thử nghiệm vi phân riêng biệt không? Lý tưởng nhất là ví dụ sử dụng Java, C# hoặc C++.

Bất kỳ tài liệu nào đề cập đến các khái niệm này nói chung và giúp tôi hiểu chúng tốt hơn sẽ được đánh giá cao.

Ngoài ra nếu có diễn đàn ở đó, tôi có thể đặt câu hỏi chi tiết hơn về cách kiểm tra đơn vị chính xác và thậm chí có thể tái cấu trúc mã hiện tại và các ví dụ đăng bài.

Cảm ơn!

+2

Điều đó có vẻ giống như một địa ngục của rất nhiều câu hỏi trong một đi duy nhất. Bạn có thể muốn thu hẹp nó xuống. Và có lẽ (mặc dù những người khác sẽ có thể đánh giá điều này) điều này có thể phù hợp hơn cho các lập trình viên SE? – Bart

+0

Vâng, bạn nói đúng.Tôi đã giới hạn nó với câu hỏi về tài nguyên thông tin và đăng các chi tiết trong phần lập trình viên. – Pete

+0

Người lập trình SE thực sự là –

Trả lời

3

Tôi muốn giới thiệu xUnitTestPatterns - Refactoring Test Code by Gerald Meszaros cung cấp một số thông tin chi tiết về câu hỏi của bạn và rất nhiều chi tiết về thực tiễn tốt và xấu khi thử nghiệm ở cấp độ phương pháp riêng lẻ.

Nếu bạn đã đọc Refactoring by Fowler, bạn sẽ thấy câu trả lời cho câu hỏi của bạn không nhất thiết là đen trắng, nhưng dựa trên kinh nghiệm của bạn và những người khác.

+0

Xin cảm ơn về mẹo. Tôi nhận được cùng một lúc SE lập trình vì vậy tôi đã có một cảm giác tốt về đặt hàng nó. Fowler là cái tên mà tôi đã nghe gần đây (đọc "Phần mềm hướng đối tượng đang phát triển được hướng dẫn bởi các bài kiểm tra" vào lúc này). Có lẽ tôi cũng sẽ phải làm vậy. – Pete

1

Rainsberger quá thổi phồng như thế nào không hiệu quả thử nghiệm tích hợp là, để chứng minh quan điểm của mình trong việc đạt được cuối cùng chất lượng 100% (đúng đắn cơ bản) trong mã

DBC là tập trung vào chính thức hóa trách nhiệm và lợi ích bên ngoài của cả hai bên A và B. Giống như một phần mở rộng của giao diện. Vì vậy, chính tập trung trở thành hợp đồng chính nó, một lớp ở giữa mà sẽ cho cả hai bên nếu họ có thể tương tác với nhau.

Rainsberger nói rõ ràng rằng cho đến nay không có thư viện hoặc hỗ trợ ngôn ngữ rõ ràng và đạt được cả A mocks và B đầu vào để hỏi cùng một điều, gợi ý rằng nó có thể là một tiến sĩ làm việc cho một ai đó.

Tuy nhiên Jim Weirich có một ví dụ tốt đẹp, nơi hợp đồng là một OO-mẫu để thử nghiệm và cho cả hai bên mà đồng ý để sử dụng nó https://www.youtube.com/watch?v=7Yw744FMqTY

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