Có sự khác biệt nào giữa việc sử dụng tearDown và setUp so với __init__
và __del__
khi sử dụng khung kiểm tra pyUnit không? Nếu vậy, chính xác nó là gì và phương pháp ưa thích của việc sử dụng là gì?PyUnit tearDown và setUp vs __init__ và __del__
12
A
Trả lời
18
setUp
được gọi trước mỗi lần kiểm tra và tearDown
được gọi sau mỗi lần kiểm tra. __init__
được gọi chỉ một lần khi lớp được khởi tạo. Thông thường, bạn không cần phải xác định __init__
hoặc __del__
khi viết kiểm tra đơn vị, mặc dù bạn có thể sử dụng __init__
để xác định một hằng số được nhiều thử nghiệm sử dụng.
Các vấn đề liên quan
- 1. Minitest #setup và #teardown không được gọi khi chạy thử qua Rake
- 2. Các phương pháp SetUp và TearDown có cần [RequiresSTA] nếu các thử nghiệm có nó không?
- 3. __new__ Overriding và __init__ bằng Python
- 4. Bất kỳ ví dụ từ thực nào về cách setUp() và tearDown() nên được sử dụng trong PHPUnit?
- 5. Python AttributeError trên __del__
- 6. Thừa kế và __init__ Overriding trong python
- 7. Lớp Python và phương pháp __init__
- 8. Inno-setup 32bit và 64bit trong một
- 9. & vs * và | vs +
- 10. Python: mở rộng int và MRO cho __init__
- 11. Python (và Python C API): __new__ so với __init__
- 12. Khi nào tôi nên sử dụng setUpClass và khi __init__?
- 13. của metaclass "__call__" và "__init__" sản phẩm đẳng cấp của
- 14. NUnit và [Setup] trong các lớp cơ sở
- 15. dòng chảy từ thiết lập đến teardown trong robotium
- 16. JMock assertIsSatisfied in TearDown?
- 17. báo cáo html đẹp cho pyunit
- 18. QUnit Vs. Jasmine và TDD Vs. BDD
- 19. CvMat và imread Vs IpImage và CvLoadImage
- 20. sử dụng __init__.py
- 21. __init__ hoặc __call__?
- 22. Sử dụng một lớp cơ sở để thiết lập thử nghiệm đơn vị và teardown
- 23. SQLAlchemy __init__ không chạy
- 24. Xác nhận trên phương thức tearDown (@After) có sai không?
- 25. Làm thế nào để thiết lập và teardown tạm thời django db để kiểm tra đơn vị?
- 26. Faye vs. Socket.IO (và Juggernaut)
- 27. TFS 2012 và VS 2010
- 28. ArrayBuffer vs Blob và XHR2
- 29. objdump và ARM vs Thumb
- 30. P99 và C99 vs C11
Cảm ơn bạn đã trả lời câu hỏi này, nó đã giúp tôi (một người mới sử dụng Python). Tôi cũng thấy rằng có một thay thế cho '__init__' và' __del__': Sử dụng các hàm 'setUpClass' và' tearDownClass'. Đây phải là các phương thức lớp, nói cách khác bạn phải thêm '@ classmethod' lên trên chúng. [Tài liệu] (https://docs.python.org/3.6/library/unittest.html#class-and-module-fixtures) – sunyata