How do I write a JUnit test case to test threads and events

前端 未结 7 895
无人共我
无人共我 2020-12-09 17:07

I have a java code which works in one (main) thread. From the main thread, i spawn a new thread in which I make a server call. After the server call is done, I am doing some

7条回答
  •  北荒
    北荒 (楼主)
    2020-12-09 17:39

    You may need to restructure your code so that it can be easily tested.

    I can see several distinct areas for testing:

    1. Thread Management code: the code that launches the thread(s) and perhaps waits for results
    2. The "worker" code run in the thread
    3. The concurrency issues that may result when multiple threads are active

    Structure your implementation so that Your Thread Management code is agnostic as to the details of the Worker. Then you can use Mock Workers to enable testing of Thread Management - for example a Mock Worker that fails in certain ways allows you to test certain paths in the management code.

    Implement the Worker code so that it can be run in isolation. You can then unit test this independently, using mocks for the server.

    For concurrency testing the links provided by Abhijeet Kashnia will help.

提交回复
热议问题