Tôi biết câu trả lời có thể khác nhau đối với mỗi khung kiểm tra. Nhưng đối với những người bạn biết, điều gì sẽ xảy ra?Phương pháp thiết lập bộ thử nghiệm có được thực hiện một lần cho mỗi thử nghiệm hay chỉ một lần cho tất cả?
Trả lời
Trong MSTest bạn có TestInitializeAttribute
Khi chạy trong một thử tải, các phương pháp đánh dấu với thuộc tính này sẽ chạy một lần cho mỗi lần lặp sử dụng ảo trong các thử nghiệm. Nếu bạn cần thực hiện các thao tác khởi tạo một lần, điều đó áp dụng cho toàn bộ thử nghiệm, hãy sử dụng ClassInitializeAttribute.
AssemblyInitializeAttribute
được chạy một lần cho tất cả các bài kiểm tra trong tất cả các lớp.
Trong NUnit, bạn có TestFixtureSetUp
chỉ chạy một lần trước khi tất cả các thử nghiệm trong chạy cố định và SetUp
chạy trước mỗi phương pháp thử nghiệm được chạy.
Điều này tự nhiên phụ thuộc vào khung công tác và đối với các câu trả lời cụ thể, bạn nên kiểm tra tài liệu liên quan.
Thiết lập các phương pháp để thử nghiệm hoặc đồ đạc hữu ích, nhưng chúng không nên bị lạm dụng. Nếu các bài kiểm tra đơn vị có complex set up methods, bạn có thể tranh luận rằng chúng có nhiều bài kiểm tra tích hợp hơn, và do đó nên được tái cấu trúc. Một thiết lập thử nghiệm phức tạp là một mùi mã. Mặt khác, thiết lập các phương pháp được sử dụng một cách khôn ngoan có thể làm giảm trùng lặp và làm cho các bài kiểm tra dễ đọc hơn và có thể duy trì được.
Trong junit4 bạn có chú thích có sẵn để đánh dấu cả hai loại phương pháp thiết lập/teardown. Dưới đây là tóm tắt:
- chạy setup trước mỗi bộ kiểm tra sử dụng
@BeforeClass
- chạy xé xuống sau mỗi bộ kiểm tra sử dụng
@AfterClass
- chạy setup trước mỗi phương pháp thử nghiệm sử dụng bộ phần mềm của bạn
@Before
- chảy nước mắt sau mỗi phương pháp thử trong bộ dụng cụ của bạn
@After
- 1. JUnit 4: Thiết lập mọi thứ trong một bộ thử trước khi chạy thử nghiệm (như phương pháp @BeforeClass của thử nghiệm, chỉ dành cho bộ thử nghiệm)
- 2. Chạy Android thử nghiệm thiết lập() được gọi nhiều lần
- 3. Thử nghiệm lần thử trong WPF
- 4. Thiết lập bộ thử nghiệm trong Ruby
- 5. Tại sao một phương pháp ClassInitialize được trang trí làm cho tất cả các thử nghiệm của tôi thất bại?
- 6. Bỏ qua phương thức Thiết lập chỉ cho một thử nghiệm cụ thể trong NUnit?
- 7. Chạy thử nghiệm PHPUnit nhiều lần
- 8. Phương pháp thiết lập thử nghiệm Nunit với đối số
- 9. Phương pháp thử nghiệm
- 10. Lặp lại thử nghiệm chạy thử nhiều lần
- 11. iOS: Phương pháp thử nghiệm chậm hơn 25 lần trên thiết bị so với mô phỏng
- 12. thử nghiệm cho giá trị NULL trong một biến mà có thể không được thiết lập
- 13. Resharper chạy tất cả các thử nghiệm khi chỉ có một đơn được chọn
- 14. Yêu cầu kiểm tra: cách thiết lập chung cho tất cả các phòng thử nghiệm
- 15. Có một bộ thử nghiệm cho numpy/scipy không?
- 16. Thử nghiệm một ứng dụng cho Android
- 17. Chạy phương thức chỉ một lần ngay từ đầu trước khi bất kỳ thử nghiệm nào được chạy trong PyUnit
- 18. Công việc Jenkins/Maven - chạy bộ thử nghiệm hai lần?
- 19. Chạy một phương pháp thử nghiệm duy nhất
- 20. Thử nghiệm thực hiện printf
- 21. Thử nghiệm phương pháp thay vì thử nghiệm toàn bộ tệp trong Netbeans w/JUnit
- 22. đơn vị thử nghiệm một phương pháp nhà máy
- 23. Thử nghiệm lập trình
- 24. Thử nghiệm ứng dụng PhoneGap trên một thiết bị thực
- 25. Giả lập phương thức tĩnh nhiều lần bằng JMockit trong thử nghiệm JUnit
- 26. Khi thử nghiệm với rspec, nơi để đặt phổ biến "phương pháp thử nghiệm tiện ích"?
- 27. Ant, chạy tất cả JUnit thử nghiệm
- 28. Chỉ sản lượng một lần cho mỗi lần lặp
- 29. Phương pháp thử nghiệm đơn vị phụ thuộc
- 30. Quản lý dữ liệu thử nghiệm cho các thử nghiệm của Junit