5

Tôi đang cố gắng tìm hiểu TDD và BDD và thực hiện đúng cách. Các ngăn xếp tôi đang sử dụng (hoặc cố gắng sử dụng, Spork không làm việc với Guard cho tôi) là Minitest-Guard-Spork-Capybara. Tôi đang tập trung vào bài kiểm tra đơn vị cho các mô hình và thông số kỹ thuật cho các bài kiểm tra tích hợp.Khi thử nghiệm, tôi có phải biên dịch trước các tài sản mỗi khi tôi điều chỉnh các tệp Javascript trong Rails 3.2 không?

Tôi có rất nhiều Ajax trong ứng dụng này. Tôi chỉ làm một save_and_open_page trên một trong các bài kiểm tra của tôi và tất nhiên trang đã xuất hiện ghê gớm, bởi vì nó không thể tìm thấy bất kỳ tài sản nào.

Câu hỏi của tôi là, nếu tôi để kiểm tra chức năng JS, tôi phải precompile tài sản mỗi lần duy nhất để kiểm tra chúng, hoặc là có một số cách để có mặc định đường ống để dev mode để thử nghiệm mục đích.

Tôi chắc chắn đây là câu hỏi n00b, nhưng đó là nơi tôi đang thử nghiệm. Đang cố gắng làm đúng.

Trả lời

2

Bạn không cần phải biên dịch nội dung, thực sự bạn không cần phải làm gì cả. save_and_open_page hoạt động khác và không tải nội dung của bạn nên đừng sợ nếu mọi thứ trông xấu xí, kiểm tra capybara của bạn vẫn hoạt động tốt với javascript mà không có bất kỳ thay đổi nào trong quá trình thiết lập môi trường thử nghiệm.

Tuy nhiên, bạn phải thiết lập capybara và thử nghiệm nhỏ để làm việc với javascript và nhớ gắn thẻ thông số kỹ thuật của bạn để kích hoạt javascript.

3

Không, bạn không phải thực hiện nó mỗi lần. Chỉ cần làm việc trong môi trường phát triển (môi trường thử nghiệm?), Môi trường sản xuất và biên dịch trước là dành cho hệ thống làm việc công cộng. Trong môi trường làm việc của bạn phải có config.assets.compile = true.

+0

Cảm ơn Sper. Hãy để tôi chắc chắn rằng tôi hiểu. Vì vậy, các bài kiểm tra của tôi có thể "xem" các tài sản thực tế trong ứng dụng của tôi, tôi cần thêm "config.assets.compile = true" vào config/environment/test.rb của mình. Nếu tôi đang làm TDD hoặc BDD cho tệp Javascript thì sao? Làm thế nào để khung kiểm thử sau đó biết cách truy cập mã mới thay vì mã được biên dịch. Hay tôi có điều này ngược. Tôi sẽ nghĩ rằng lý tưởng bạn sẽ * không * thử nghiệm đối với tài sản biên dịch, nhưng thay vì chống lại mã thô. Nhưng các thử nghiệm của tôi đang tìm kiếm các tài sản được biên dịch bởi vì tôi có thể thấy các đường dẫn đến các bảng định kiểu khi tôi lưu save_and_open_page. – AKWF

+0

Tôi nghĩ rằng trong môi trường phát triển của bạn nên được config.assets.compress = false - không đúng sự thật! nếu không bạn cần phải biên dịch tài sản của bạn trong khi phát triển. – Mattherick