Bạn muốn giới thiệu các khung công tác nào để viết các bài kiểm tra đơn vị cho mã đa luồng trong Java? Ví dụ, khi bạn có một chương trình được cho phép thực thi một loạt các luồng với một số đường dẫn được phép và một số đường dẫn bị loại trừ (như "đơn vị thực thi 1, 2 và 3 có thể chạy song song, ít nhất hai lệnh phải chạy song song, và 4 luôn phải chạy sau 3 ").Frameworks for Unittests for Multithreading trong Java
Trả lời
Tôi khuyên bạn nên đọc khoảng JUnit @Rule
để sử dụng chúng cho các thử nghiệm đồng thời.
Tôi khuyên bạn nên ContiPerf2 vì đây là khung rất dễ sử dụng. Mặc dù tôi không nghĩ rằng nó sẽ cung cấp khả năng để tuyên bố đường dẫn thực hiện hoặc một cái gì đó như thế.
Bạn có thể sử dụng các bài kiểm tra JUnit parametrized, như mô tả ở đây: http://junit.org/junit/javadoc/4.5/org/junit/runners/Parameterized.html
Nhưng bạn sẽ cần đến chương trình chủ đề Logic mình, ví dụ bằng cách sử dụng hồ bơi thread khác nhau.
Bạn có thể xem qua kính ngắm (http://javapathfinder.sourceforge.net/) nếu bạn muốn chứng minh rằng mã của bạn là chuỗi an toàn.
Chuỗi này mô tả một số phương pháp chung để kiểm tra mã đồng thời.
Designing a Test class for a custom Barrier
Đối với các khuôn khổ cụ thể, có một số tempus-fugit JUnit rules to run things in parallel nhưng như đề xuất ở trên, bạn kiểm tra có thể sẽ phải bao gồm logic hơn.
- 1. Sử dụng 'for' trong Java
- 2. return return for for loop
- 3. Phá vỡ vòng lặp for trong Java
- 4. Java: for (;;) so với while (true)
- 5. Checkstyle for ActionScript (Flex)
- 6. Kerberos for Thrift?
- 7. Checkstyle for Python
- 8. Trợ giúp với Java Multithreading
- 9. Hector for Cassandra
- 10. "for (;;)" làm gì trong C#?
- 11. SelectionBinding for Checkbox trong EmberJs
- 12. Sử dụng for-each vòng lặp trong java
- 13. resizableImageWithCapInsets for NSImage?
- 14. Netbeans Intellisense for Rails
- 15. Mapreduce for dummies
- 16. Speex for iphone
- 17. for..in và hasOwnProperty
- 18. NoClassDefFoundError for MockitoInvocationHandler class
- 19. NLTK for Persian
- 20. Coffeescript for loop
- 21. Knockout 'for' binding?
- 22. Winforms Timer for Dummies
- 23. diff/patch for images
- 24. OpenID for dummies?
- 25. StartForeground for IntentService
- 26. Mocking for Dummies?
- 27. Query Extension for LINQ
- 28. Infinite for loop in Python
- 29. ASIHTTPRequest for dummies
- 30. IL Compiler for .NET?