Có bất kỳ khác biệt thời gian chạy-logic giữa hai phương pháp này không? Hoặc bất kỳ khác biệt behviour?
Nếu không, sau đó tôi nên quên khoảng __init__
và chỉ sử dụng setUpClass
suy nghĩ ở đây về các lớp hủy bỏ như về không gian tên thay vì ngôn ngữ Mô hình OOP?Khi nào tôi nên sử dụng setUpClass và khi __init__?
Trả lời
Hai loại này hoàn toàn khác nhau.
setUpClass
là một phương pháp lớp, vì vậy, nó sẽ chỉ cho phép bạn đặt thuộc tính lớp.
Chúng cũng được gọi vào các thời điểm khác nhau. Á hậu thử tạo một phiên bản mới cho mọi thử nghiệm. Nếu bạn kiểm tra lớp có 5 phương pháp thử, 5 trường hợp được tạo và __init__
được gọi là 5 lần.
setUpClass
thường được gọi là sau khi. (Nếu bạn xáo trộn trật tự kiểm tra và phương pháp thử từ các lớp khác nhau được xen kẽ, setUpClass
có thể được gọi nhiều lần, sử dụng tearDownClass
để dọn dẹp đúng cách và điều đó sẽ không thành vấn đề).
Ngoài ra, nhân viên kiểm tra thường tạo tất cả các phiên bản thử nghiệm khi bắt đầu chạy thử nghiệm; điều này thường rẻ, vì các trường hợp thử nghiệm không giữ (nhiều) trạng thái như vậy sẽ không mất nhiều bộ nhớ.
Theo quy tắc chung, bạn nên không sử dụng sử dụng __init__
. Sử dụng setUpClass
để tạo trạng thái được chia sẻ giữa tất cả các thử nghiệm và sử dụng setUp
để tạo trạng thái thử nghiệm. setUp
được gọi ngay trước khi chạy thử nghiệm, vì vậy bạn có thể tránh xây dựng nhiều trạng thái bộ nhớ chuyên sâu cho đến khi nó là cần thiết cho một thử nghiệm, và không phải trước đây.
- 1. Khi nào tôi nên sử dụng require() và khi nào nên sử dụng define()?
- 2. C# Khi nào tôi nên sử dụng Danh sách và khi nào tôi nên sử dụng danh sách array?
- 3. Khi nào tôi nên sử dụng stdClass và khi nào tôi nên sử dụng một mảng trong mã php oo?
- 4. Trong Jira Agile khi nào tôi nên sử dụng "Story" và khi nào tôi nên sử dụng "Cải tiến"
- 5. Khi nào tôi nên sử dụng Gói-Nhập khẩu và khi nào tôi nên sử dụng Yêu cầu-Gói?
- 6. Khi nào tôi nên sử dụng adorners?
- 7. Khi nào tôi nên sử dụng AQL?
- 8. Khi nào tôi nên sử dụng SynchronousQueue
- 9. Khi nào tôi nên sử dụng GC.SuppressFinalize()?
- 10. Khi nào tôi nên sử dụng ConcurrentSkipListMap?
- 11. khi nào tôi nên sử dụng _mm_sfence _mm_lfence và _mm_mfence
- 12. Khi nào tôi nên sử dụng perror ("...") và fprintf (stderr, "...")?
- 13. Khi nào và ở đâu tôi nên sử dụng WCF
- 14. Khi nào tôi nên sử dụng remove_reference và add_reference?
- 15. Khi nào tôi nên sử dụng dấu và với scanf()
- 16. Khi nào nên sử dụng hệ thống() và khi nào nên sử dụng execv *()?
- 17. Khi nào bạn nên sử dụng JCR và khi nào bạn nên sử dụng JPA/RDBMS?
- 18. Khi nào tôi nên sử dụng Bảng chỉ mục của Oracle? Hoặc, khi tôi không nên?
- 19. Khi nào tôi nên (và tôi không nên) sử dụng chú thích @inline của Scala?
- 20. Khi nào tôi nên sử dụng async/await và khi nào thì không?
- 21. Khi nào tôi nên sử dụng @classmethod và khi def method (self)?
- 22. Khi nào nên sử dụng node.js và khi nào sử dụng ajax?
- 23. Khi nào nên sử dụng và khi nào không sử dụng Try Catch Cuối cùng
- 24. Khi nào nên sử dụng Class.isInstance() và khi nào thì sử dụng toán tử instanceof?
- 25. Khi nào tôi nên sử dụng thư viện khung javascript?
- 26. Khi nào tôi nên sử dụng UserControl thay vì Trang?
- 27. django - khi nào tôi nên sử dụng media_root hoặc static_root?
- 28. Khi nào tôi nên sử dụng toán tử bitwise?
- 29. Khi nào tôi nên sử dụng Hashtable so với HashMap
- 30. Khi nào tôi nên sử dụng setUserState trong Joomla?