2009-07-31 31 views
5

Điều này có vẻ như là một câu hỏi đơn giản nhưng tôi không thể tìm thấy câu trả lời ở bất cứ đâu. Tôi đã nhận thấy rằng nói chung, kiểm tra trong một Ruby on Rails ứng dụng có thể được viết như sau:Tôi có nên viết các bài kiểm tra đường ray bằng từ khóa kiểm tra hoặc từ khóa không?

test "the truth" do 
    assert true 
    end 

hoặc

def the_truth 
    assert true 
    end 

Có vẻ như tài liệu mới viết thử nghiệm cách đầu tiên, nhưng tôi không thể dường như tìm ra lý do cho việc này. Là một trong những ưu tiên hơn khác? Có chính xác hơn không? Cảm ơn.

Trả lời

8

Đã có sự thay đổi trong những năm gần đây từ các tên thử ngắn, viết tắt thành tên thử nghiệm dài hơn, giống câu. Điều này một phần là do sự phổ biến của RSpec và khái niệm rằng các bài kiểm tra là các thông số kỹ thuật và phải mang tính mô tả.

Nếu bạn thích tên thử nghiệm mô tả hơn, tôi khuyên bạn nên sử dụng phương pháp test. Tôi thấy nó dễ đọc hơn.

test "should not be able to login with invalid password" do 
    #... 
end 

def_should_not_be_able_to_login_with_invalid_password 
    #... 
end 

Ngoài ra, vì mô tả là chuỗi nó có thể chứa bất kỳ ký tự nào. Với def bạn bị giới hạn trong đó các ký tự bạn có thể sử dụng.

+0

Phần phương thức 'test' của Rspec hoặc một số thư viện khác? – Pithikos

2

Tôi tin rằng phương pháp đầu tiên đã được triển khai bắt đầu với Rails 2.2. Theo như tôi biết, nó chỉ đơn giản là cải thiện khả năng đọc mã của bạn (như def có thể là bất kỳ chức năng trong khi thử nghiệm chỉ được sử dụng trong các trường hợp thử nghiệm). Chúc may mắn!

-1

Tôi khuyên bạn nên thực hiện thử nghiệm của mình với RSpec hoặc Cucumber. Tôi sử dụng cả hai để kiểm tra tất cả các ứng dụng của mình. RSpec được sử dụng để kiểm tra các mô hình và bộ điều khiển, và Cucumber kiểm tra các khung nhìn (thông qua chức năng Webrat đi kèm).

0

Vì Mike Trpcic đề nghị bạn nên kiểm tra RSpec và dưa chuột. Tôi muốn thêm rằng bạn cũng nên có một cái nhìn tại địa chỉ:

shoulda là một khuôn khổ vĩ mô để viết bài kiểm tra đơn vị ngắn gọn cho mô hình/bộ điều khiển của bạn, trong khi thứ hai là một thay thế cho đồ đạc.

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