2011-02-07 23 views
23

Tôi đã sử dụng ruby ​​độc quyền trong khoảng một tháng và tôi thực sự thích nó. Tuy nhiên, tôi đang có một thời gian cực kỳ khó khăn khi sử dụng, hoặc thậm chí là học TDD. Não của tôi không hoạt động theo cách đó ...Làm thế nào để học TDD với Ruby?

Tôi thực sự, thực sự muốn học TDD nhưng thực ra tôi hơi bối rối. Tất cả các bài viết mà tôi tìm thấy khi Googling xung quanh chủ yếu dành riêng cho Rails, điều này không thú vị với tôi vì tôi muốn tìm hiểu cách thực hiện kiểm tra hiệu quả cho bất kỳ ứng dụng ruby ​​nào, từ tập lệnh đơn giản đến đá quý phức tạp, không phải cho Ứng dụng web. Ngoài ra, có rất nhiều khung công tác và rất ít hướng dẫn để bắt đầu.

Ai đó có thể cho tôi lời khuyên nào về cách học TDD để tôi ít nhất có thể bắt đầu tự xem mình là một người yêu thích không?

+0

Mặc dù hầu hết các câu trả lời đều đề cập đến các tài nguyên ngoài trang web, câu hỏi không yêu cầu họ, cũng không có câu trả lời hay cho câu hỏi yêu cầu tài nguyên ngoài trang web. Vì vậy, tôi không nghĩ rằng điều này nên được đóng lại như một yêu cầu cho các nguồn tài nguyên ngoài trang web. –

Trả lời

11

Cách tốt nhất để học TDD là bằng cách thực hiện. Tôi đề nghị bạn xây dựng một dự án mới bằng cách sử dụng TDD. Điều này có nghĩa là không viết bất kỳ mã không kiểm tra nào trừ khi bạn có kiểm tra lỗi.

Nó sẽ làm cho bạn nghĩ về việc viết bài kiểm tra: Tôi muốn viết mã này, làm thế nào để viết một bài kiểm tra cho nó để tôi có thể viết nó.

Nó sẽ cho bạn thấy bản chất phân lớp của thử nghiệm. Thay vì muốn một tên được yêu cầu và không thể chứa số. trước tiên bạn sẽ kiểm tra thiết lập và đọc một tên, kiểm tra yêu cầu tên, kiểm tra nó không nên chứa số, hơn là nghĩ rằng nếu nó có nhiều ràng buộc hơn và kiểm tra chúng.

Hãy nhớ rằng:

  • Viết một bài kiểm tra trước khi bạn viết mã
  • Hãy chắc chắn rằng các thử nghiệm thất bại! Điều quan trọng là phải biết bạn đang thử nghiệm logic là đúng
  • Trước khi viết bài kiểm tra tiếp theo chắc chắn rằng tất cả các test thành công
  • Bạn luôn có thể dọn dẹp mã của bạn, nếu các cuộc thử nghiệm tiếp tục làm việc bạn không thay đổi thiết kế
14

Hãy thử RubyKoans.

+1

RubyKoans là tuyệt vời bởi vì họ dạy ruby ​​dựa trên các bài kiểm tra. Chắc chắn là một cách tốt để học TDD bằng ví dụ. Cũng được đề xuất: [Các phương pháp hay nhất của Ruby] (http://www.amazon.com/Ruby-Best-Practices-Gregory-Brown/dp/0596523009/ref=sr_1_1?s=books&ie=UTF8&qid=1297070444&sr=1-1) – Mobbit

5

Thật khó khăn khi nhận đầu của bạn quanh TDD (và BDD) nhưng cuốn sách RSpec Book - BDD đã giúp tôi rất nhiều. Hành vi phát triển theo định hướng không hoàn toàn giống với TDD, nhưng nó gần gũi và bạn phải suy nghĩ theo cách tương tự.

3

Một thử nghiệm tại một thời điểm. Đó là bí mật duy nhất, phần còn lại chỉ là thực hành, mặc dù bạn sẽ cần phải thực hiện thực hành ;-)

Bạn đã có đủ để bắt đầu: Ruby có thư viện test/unit. bắt đầu với.

Hãy thử Googling cho Ruby test/unitRuby TDD. Một vài điểm bắt đầu hữu ích mà tôi đã tìm thấy là herehere.

Tôi muốn bắt đầu thực hành với một dự án hoàn toàn mới, tốt nhất là một dự án bên lề nơi bạn có thể tiến triển chậm hơn lúc đầu. Hãy thực sự nghiêm ngặt - tất cả các mã nên được viết như là kết quả của một bài kiểm tra thất bại. Hãy nhớ phần thứ ba của câu thần chú "red-green-refactor" - bạn sẽ sớm gặp rắc rối nếu không có nó (tin tôi đi, tôi đã ở đó).

Khi bạn cảm thấy bạn bắt đầu trở nên thoải mái với kỹ thuật này (một dấu hiệu có thể là bạn nhận thấy rằng bạn không thực sự có chu kỳ gỡ lỗi mã kiểm tra nữa), sau đó bắt đầu xem một số lựa chọn thay thế: rspec là chính, nhưng có những người khác (riot, minitest là mặc định Ruby 1.9, nếu bạn đang ở trên 1.8.x)

1

Cá nhân tôi tìm thấy màn hình Peepcode RSpec rất hữu ích, chúng cung cấp cho bạn ý tưởng hay về để kiểm tra cộng với chúng, chúng giúp bạn bắt đầu nhanh chóng với RSpec. Tôi mất một thời gian để bắt đầu sử dụng TDD, nhưng nó đáng giá!

3

Tôi vẫn khuyên bạn nên TDD by Example bởi Kent Beck. Đó là một dễ đọc và cung cấp cho bạn tất cả những điều cơ bản.

1

Tôi đồng ý với câu trả lời về việc đọc "TDD by Example" của Kent Beck và về việc có một dự án thực sự nơi bạn buộc bản thân thực hiện.

Bạn cũng có thể tìm thấy Back to Basics: Writing Unit Tests First hữu ích dưới dạng tham chiếu liên quan đến Ruby.

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