2009-06-06 14 views
9

Tôi cần phải có một phương pháp thiết lập và teardown cho một số bài kiểm tra Rails đó là lớp hoặc hệ thống rộng, nhưng tôi chỉ tìm thấy một cách để xác định một thiết lập thường xuyên/teardown hoạt động trên mỗi cấp độ thử nghiệm.Có một lớp setup_class/teardown_class cho các bài kiểm tra Rails không?

Ví dụ:

class ActiveSupport::TestCase 
    setup do 
    puts "Setting up" 
    end 

    teardown do 
    puts "tearing down" 
    end 
end 

sẽ thực hiện các kết quả đầu ra cho từng trường hợp kiểm tra, nhưng tôi muốn một cái gì đó như:

class ActiveSupport::TestCase 
    setup_fixture do 
    puts "Setting up" 
    end 

    teardown_fixture do 
    puts "tearing down" 
    end 
end 

đó sẽ thực hiện các thiết lập _ cố trước tất cả các phương pháp thử , và sau đó thực hiện teardown _ fixture sau tất cả các phương pháp thử nghiệm.

Có cơ chế nào như vậy không? Nếu không, liệu có cách nào dễ dàng để khỉ vá cơ chế này?

Trả lời

4

Có một số thử nghiệm phổ biến các khung xây dựng trên Test::Unit và cung cấp hành vi này:

RSpec

describe "A Widget" do 
    before(:all) do 
    # stuff that gets run once at startup 
    end 
    before(:each) do 
    # stuff that gets run before each test 
    end 
    after(:each) do 
    # stuff that gets run after each test 
    end 
    after(:all) do 
    # stuff that gets run once at teardown 
    end 
end 

Test/Spec

context "A Widget" do 
    # same syntax as RSpec for before(:all), before(:each), &c. 
end 
-1

Tôi nghĩ rằng đường ray cung cấp chức năng như vậy cho đồ đạc. Bạn có thể sử dụng đồ đạc bằng cách nói

 
    fixtures :users 

trong tệp kiểm tra của bạn

và ngoài ra bạn cũng có thể sử dụng

 
def setup 
    #.... 
end 

trong các tập tin thử nghiệm của bạn là tốt,

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