Tôi đang thử nghiệm một trang web Ruby Rails và muốn bắt đầu với bài kiểm tra Đơn vị và Chức năng.Cách tốt nhất để bắt đầu Đơn vị và thử nghiệm chức năng của trang web Ruby Rails là gì?
Trả lời
Cucumber và RSpec đáng xem. Họ khuyến khích thử nghiệm theo kiểu behaviour-driven, dựa trên mẫu.
RSpec là một thư viện cho kiểm tra đơn vị cấp:
describe "hello_world"
it "should say hello to the world" do
# RSpec comes with its own mock-object framework built in,
# though it lets you use others if you prefer
world = mock("World", :population => 6e9)
world.should_receive(:hello)
hello_world(world)
end
end
Nó có hỗ trợ đặc biệt cho Rails (ví dụ như nó có thể kiểm tra models, views và controllers trong sự cô lập) và có thể thay thế các cơ chế kiểm tra tích hợp sẵn trong Rails .
dưa chuột (trước đây gọi là RSpec Câu chuyện Runner) cho phép bạn viết nghiệm thu cấp cao trong (khá) đồng bằng tiếng Anh mà bạn có thể hiển thị cho (và đồng ý với) một khách hàng, sau đó chạy chúng:
Story: Commenting on articles
As a visitor to the blog
I want to post comments on articles
So that I can have my 15 minutes of fame
Scenario: Post a new comment
Given I am viewing an article
When I add a comment "Me too!"
And I fill in the CAPTCHA correctly
Then I should see a comment "Me too!"
Đề xuất của tôi là (nghiêm túc) chỉ cần bỏ qua công cụ kiểm tra đơn vị đường ray/công cụ kiểm tra chức năng và đi thẳng đến RSpec.
Công cụ xây dựng đường ray sử dụng khung Test::Unit
đi kèm với ruby và ít nhiều là một cổng thẳng của JUnit/NUnit/AnyOtherUnit.
Tôi thấy những khuôn khổ này khá tẻ nhạt và khó chịu, dẫn đến sự thờ ơ chung về việc viết các bài kiểm tra đơn vị, rõ ràng không phải là những gì bạn đang cố gắng đạt được ở đây.
RSpec là một con thú khác, tập trung xung quanh mô tả mã của bạn nên làm, thay vì khẳng định nó đã làm. Nó sẽ thay đổi cách bạn xem thử nghiệm, và bạn sẽ có một heck vui vẻ hơn rất nhiều làm nó.
Nếu tôi nghe giống như một fanboy, đó là vì tôi thực sự tin rằng RSpec là tốt. Tôi đã đi từ khó chịu và mệt mỏi của đơn vị/thử nghiệm chức năng, để một người tin tưởng trung thành trong nó, khá nhiều chỉ vì rspec.
Test :: Unit và RSpec chỉ là công cụ - giá trị là cách bạn sử dụng chúng. Bất cứ điều gì bạn có thể làm trong RSpec bạn có thể làm trong Test :: Unit. BDD chỉ là cải tiến so với TDD vì nó chỉ ra bằng ngôn ngữ rõ ràng những gì bạn nên làm trong các bài kiểm tra của mình. Xem http://dannorth.net/introducing-bdd –
đó chính xác là quan điểm của tôi. Tôi có thể viết tất cả các bài kiểm tra của tôi trong x86 assembler nếu tôi muốn. Giá trị là cách nó ảnh hưởng đến suy nghĩ của bạn, và do đó giúp bạn tạo ra các bài kiểm tra tốt hơn –
Có vẻ như bạn đã viết đơn đăng ký của mình, vì vậy tôi không chắc chắn bạn sẽ nhận được một khoản tiền thưởng khổng lồ từ việc sử dụng RSpec
trên Test::Unit
.
Dù sao đi nữa, bất kể bạn chọn cái nào, bạn sẽ nhanh chóng gặp phải một vấn đề khác: quản lý đồ đạc và mocks (ví dụ: dữ liệu thử nghiệm của bạn "). Vì vậy, hãy xem Shoulda và Factory Girl.
Ngay cả khi ứng dụng đã được viết, tôi khuyên bạn nên sử dụng RSpec over Test :: Unit cho thực tế đơn giản là không có ứng dụng nào được hoàn thành. Bạn sẽ muốn thêm các tính năng và mã refactor. Bắt thói quen kiểm tra ngay từ rất sớm sẽ giúp làm cho những thay đổi này ít đau đớn
Bạn cũng có thể kiểm tra giao diện web với Firefox plug-in như http://selenium.openqa.org/
Nó sẽ ghi lại nhấp chuột và nhập văn bản và sau đó đóng lại và sẽ kiểm tra trang cho các yếu tố hiển thị chính xác.
- 1. Cách tốt nhất để tránh thử ... bắt ... cuối cùng ... trong thử nghiệm đơn vị của tôi là gì?
- 2. Thực hành tốt nhất: Tổ chức thử nghiệm đơn vị
- 3. Thực hành tốt nhất để tổ chức kiểm tra selen và thử nghiệm đơn vị
- 4. Làm cách nào để bắt đầu mã cũ và mới thử nghiệm đơn vị?
- 5. Cách thực hành tốt nhất để tổ chức cấu trúc thư mục thử nghiệm Ruby là gì?
- 6. Chức năng chính thử nghiệm đơn vị tăng cường?
- 7. Á hậu thử nghiệm Nunit tốt nhất là gì?
- 8. Chức năng thử nghiệm đơn vị riêng tư trong Android
- 9. Cách tốt nhất để bắt đầu với OSGI là gì?
- 10. Khuôn khổ thử nghiệm đơn vị tốt nhất cho Clojure?
- 11. các công cụ tốt nhất cho các ứng dụng thử nghiệm đơn vị iphone là gì?
- 12. Xóa cơ sở dữ liệu thử nghiệm giữa đơn vị và kiểm tra chức năng trong Rails (factory_girl)
- 13. Đây có phải là cách thử nghiệm đơn vị tốt để sử dụng chức năng khác, được kiểm tra để chuẩn bị cho thử nghiệm thực tế không?
- 14. Thử nghiệm đơn vị dịch vụ web
- 15. Khung thử nghiệm đơn vị sinh học là gì?
- 16. mùi thử nghiệm đơn vị
- 17. Giới thiệu người mới bắt đầu để thử nghiệm đơn vị trong Visual Studio 2008
- 18. Ruby on Rails: Chạy thử nghiệm
- 19. Tính năng Ruby on Rails thú vị nhất là gì, tại sao lại chọn nó?
- 20. Cách tốt nhất để phân tích cú pháp trang web trong Ruby là gì?
- 21. Cách tốt nhất để bắt đầu với NHibernate là gì?
- 22. Thử nghiệm tự động với Ruby on Rails - thực hành tốt nhất
- 23. Chạy thử nghiệm đơn vị Ruby với Rake
- 24. Chính xác thử nghiệm tích hợp là gì - so với đơn vị
- 25. Ruby on rails sự khác biệt giữa hội nhập và chức năng thử nghiệm
- 26. Cách tốt nhất để thử nghiệm Đơn vị Dự án MonoTouch?
- 27. Thử nghiệm ruby :: Tùy chọn dòng lệnh đơn vị?
- 28. IP tốt nhất để Vị trí cho Ruby on Rails
- 29. Tổ chức dự án thử nghiệm đơn vị .NET
- 30. Đơn vị và chức năng thử nghiệm một ứng dụng dựa trên PySide?
API thứ hai cho các thử nghiệm chấp nhận đã được đưa ra khỏi RSpec và hiện được gọi là "dưa chuột". –
Cảm ơn - Tôi đã chỉnh sửa để cập nhật câu trả lời. –