Как заставить JUnit вести себя так же, как Java, запущенный из командной строки - PullRequest
0 голосов
/ 14 апреля 2011

Я заметил, что когда завершается модульный тест, все созданные потоки автоматически уничтожаются, это сильно отличается от java-программы, запускаемой из командной строки.В командной строке программа не завершает работу до тех пор, пока не выйдут все не-деамонные потоки.

Как проверить случай, связанный с порожденной нитью, с помощью jUnit?

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Если метод, который вы тестируете, возвращает ссылку на созданный им поток, то присоединитесь к нему.Если это не так, создайте свой собственный поток для вызова тестируемого метода и присоединитесь к нему.

0 голосов
/ 14 апреля 2011

Я бы посоветовал вам выключить ваш модульный тест (), чтобы его компоненты возвращались в состояние до начала теста.Это может на самом деле не требоваться в работающей системе, но позволяет запускать несколько тестов много раз.

Возможно, вы даже захотите сделать снимок запущенных потоков при запуске и проверить после теста, что естьнет новых тем (могут быть некоторые ожидаемые, которые в порядке)

...