2011-03-21 4 views
9

Tôi muốn viết một số thử nghiệm tự động cho ứng dụng Rails 3 của mình.Làm cách nào để bắt đầu thử nghiệm ứng dụng Rails?

Tôi tự hỏi làm thế nào để bắt đầu với điều đó.

Tôi đã nghe nói về Selenium/RSpec/Dưa chuột và tôi đoán có nhiều tùy chọn hơn.

Ưu điểm/nhược điểm của các khuôn khổ thử nghiệm này là gì? Cái nào trong số họ có tài liệu tốt nhất? Cái nào là phổ biến nhất trong thế giới Ruby? Và trong ngành công nghiệp?

Tôi có kiến ​​thức chung về cách viết kiểm tra. Tôi chỉ muốn tìm hiểu (các) khung kiểm tra thích hợp để thử nghiệm các ứng dụng Rails.

Vui lòng giúp tôi quyết định khung bắt đầu thử nghiệm nào.

+3

Tất cả các câu hỏi rất hay. IMO, có một sự thiếu gắn kết/hiểu biết về rất nhiều khía cạnh của Rails, đặc biệt là đối với thử nghiệm. – Zabba

+0

Một số bài viết hay về [metabates.com] (http://www.metabates.com/). – Zabba

Trả lời

2

Có nhiều công cụ để kiểm tra đường ray và các ứng dụng web khác từ nhiều khía cạnh khác nhau. Nhưng nếu bạn là người mới để thử nghiệm Tôi khuyên bạn nên bắt đầu với việc học Rails thử nghiệm khung riêng trước khi bắt đầu sử dụng các công cụ khác.

Học và sau đó làm chủ, một khung kiểm tra giúp dễ dàng hơn trong tương lai để hiểu ưu/nhược điểm với khung khác và làm cho chúng hoạt động đồng loạt.

Bạn có thể bắt đầu với thử nghiệm những điều sau đây: Kiểm tra

  • Đơn vị Mô hình của
  • Các xét nghiệm chức năng cho điều khiển của bạn
  • Tìm hiểu về Lịch thi đấu và làm thế nào để tải dữ liệu thử nghiệm

Tôi đã thấy nhiều nỗ lực thử nghiệm thất bại, nhưng tôi chưa bao giờ thấy chúng thất bại vì họ chọn công cụ/khung công cụ sai. Họ không thành công vì họ không biết làm thế nào để nắm vững các công cụ họ sử dụng, và tìm hiểu đủ về những điều cơ bản về thử nghiệm.

Đọc thêm về thử nghiệm Rails tại đây.
http://guides.rubyonrails.org/testing.html

Manual Testing thăm dò
Càng nhiều càng tốt Tôi thích tự động thử nghiệm nó là, IMHO, không phải là một thay thế cho kiểm tra thủ công. Lý do chính là tự động chỉ có thể làm những gì nó được nói và chỉ xác minh những gì nó đã được thông báo để xem là pass/fail. Một con người có thể sử dụng trí thông minh của nó để tìm lỗi và nêu ra các câu hỏi xuất hiện trong khi thử nghiệm một thứ khác.
Đọc thêm về trộn Tự động và Kiểm tra thủ công ở một trong các câu trả lời của tôi tại đây:
What test methods do you use for developing websites?

1

Cách dễ nhất để bắt đầu là sử dụng TestUnit. Khi bạn tạo một mô hình, khung nhìn, bộ điều khiển sử dụng giàn giáo, nó sẽ tự động tạo ra một thư mục thử nghiệm cho bạn chứa một tệp thiết lập môi trường thử nghiệm và kiểm thử, hoặc bạn có thể thêm các thử nghiệm cho các mô hình hiện có bằng trình tạo đường ray.

Sau đó, đọc tài liệu về TestUnit, trong đó có số tiền hợp lý. Để có một bước tiếp theo, sở thích cá nhân của tôi là sử dụng RSpec trên Cucumber - tôi đã tìm thấy Dưa chuột khó duy trì, và trong khi nó là tuyệt vời để có các bài kiểm tra có thể đọc được bởi sếp của bạn, tôi thấy rằng hầu hết các ông chủ không thực sự muốn đọc hoặc đóng góp cho các bài kiểm tra, và nó làm cho việc phát triển tốn thời gian và rất 'bitty' - rất nhiều mẩu văn bản nhỏ nằm rải rác trong các tệp khác nhau.

Nếu bạn muốn nhảy ngay vào và bắt đầu sử dụng RSpec cho Rails, tôi khuyên bạn nên Rspec-Rails, bao gồm nhiều người trợ giúp để xác nhận hành vi chính xác của đơn đăng ký của bạn.

Tôi có thể tiếp tục nhưng bạn đã yêu cầu 'bắt đầu từ đâu' - có hai địa điểm tốt.

+0

Cảm ơn ý kiến ​​của bạn. Anh không nói gì về Selenium. Tôi đoán rằng RSpec và Selenium dành cho các loại thử nghiệm khác nhau. Có đúng không ? –

+0

Misha: RSpec có thể được sử dụng VỚI Selen nếu bạn đang thử nghiệm ứng dụng của mình như được hiển thị trong trình duyệt (Selenium là trình điều khiển trình duyệt). – carols10cents

+0

Những gì bạn sử dụng để giả vờ là trình duyệt tùy thuộc vào bạn - nó hoạt động tốt với RSpec. Tôi sử dụng Webrat vì tôi thấy dễ dàng hơn khi thiết lập. – stef

2

Selenium là khuôn khổ để tự động kiểm tra giao diện người dùng. Tập lệnh Selenium khởi chạy cửa sổ trình duyệt, chuyển đến trang web và thao tác các phần tử trang.

RSpecDưa chuột là những công cụ cho những gì được gọi là "hành vi thúc đẩy phát triển (BDD)". BDD là một quá trình phát triển mà bạn có mô tả về một tính năng riêng biệt và một số tập lệnh (có thể là tập lệnh Selenium) để kiểm tra tính năng này. RSpec và Cucumber về cơ bản kết nối hai, do đó khi bạn chạy một kịch bản thử nghiệm, bạn sẽ thấy danh sách các tính năng được viết bằng ngôn ngữ đơn giản và trạng thái thử nghiệm của chúng.

Tập lệnh selen có thể được viết theo số number of languages, trong khi kịch bản Cucumber sử dụng Ruby. Tài liệu là OK cho tất cả chúng, mặc dù một số kiến ​​thức về ngôn ngữ lập trình là bắt buộc.

liên kết Bắt đầu:

1

Có một loạt các khuôn khổ mà giúp bạn kiểm tra mã ruby ​​/ ray của bạn ... những điều tuyệt vời là bản chất năng động của Ruby cung cấp cho bạn rất nhiều tính linh hoạt.

Tôi thích sử dụng RSpec để kiểm tra nội bộ của mã của tôi và Cucumber để kiểm tra hành vi của ứng dụng. Vì vậy, nói chung, RSpec sẽ kiểm tra các mô hình và phương pháp, và Cucumber kiểm tra tương tác người dùng thông qua trình duyệt.

Tôi thực sự khuyên bạn nên sử dụng ebook lập trình viên thực tế này trên BDD using RSpec on Cucumber.

+0

Lưu ý: Cá nhân tôi không khuyến nghị sử dụng selenium. Tôi sẽ đi với Cucumber bằng cách sử dụng Capybara để kiểm tra tương tác trình duyệt/người dùng. –

+0

Jesse: Capybara có thể sử dụng Selenium làm trình điều khiển trình duyệt nếu bạn đang thử nghiệm javascript; chúng không loại trừ lẫn nhau. – carols10cents

+0

@carolclarinet điểm tốt –

2

Tôi sẽ không nói rằng có bất kỳ một bộ tốt nhất của công cụ kiểm tra trên mạng; và cộng đồng chắc chắn đã không quyết định bất kỳ tiêu chuẩn nào theo bất kỳ cách nào.

Tôi khuyên bạn nên The RSpec Book từ những người lập trình thực dụng-- khoảng một nửa cuốn sách đang được thử nghiệm với Rails với Cucumber, RSpec và trình mô phỏng trình duyệt như Selenium. Đó là một tổng quan toàn diện về các tình huống khác nhau mà bạn sẽ thấy mình với Rails và những công cụ bạn có thể muốn sử dụng trong mỗi tình huống.