2012-07-16 12 views
5

Oto mój scenariusz:Czy istnieje sposób na przełamanie wewnątrz testowanych klas?

  1. Mam Android usługi (CoreService)
  2. używam ServiceTestCase<CoreService> przetestować to
  3. CoreService spawns wątek i instancję kilka klas, które mają słuchaczy/wywołania zwrotne na nich.

Czy istnieje sposób na ustawienie punktów przerwania w zarodkach wątków i/lub wywołania zwrotnego i czy JUnit się na tym zatrzyma? Zatrzymuje się tylko w punktach przerw zdefiniowanych w projekcie JUnit lub klasie CoreService.

+0

Czy używasz aktualizacji Java 6 16+? – shkschneider

+0

Nie, używam Open JDK 7. – m0skit0

+0

Widziałem wiele błędów punktu przerwania związanych z OpenJDK. Oba są aktywnie utrzymywane. Spróbuj użyć aktualizacji Sun Java 6 Update 16+ (która naprawia błędy punktów krytycznych), aby sprawdzić, czy działa. – shkschneider

Odpowiedz

2

Spróbuj zmienić punkt przerwania zawiesić politykę Zawiesić VM:

enter image description here

Aby zmienić globalnie:

enter image description here

Aby uzyskać więcej informacji o Breakpoint Zawiesić Politykę, czek obecnie here.

+0

Dzięki za odpowiedź. Za późno, niestety, ponieważ usunąłem projekt testowy JUnit. Spróbuję tego spróbować, ale bardzo wątpię, że to jest problem, ponieważ w innych okolicznościach zatrzymuje się na pułapkach ustawionych nawet na różnych procesach (nie tylko wątkach). To po prostu nie działa z JUnit ... – m0skit0

+0

To jest normalny sposób, w jaki używaliśmy do debugowania wątku w aplikacji Java EE. Dla twojego problemu przetestowałem siebie (debugowanie testu JUnit Androida) i mogę potwierdzić, że to jest trudne. Stworzyłem proste projekty w GitHub [tutaj] (https://github.com/yorkw/bp-suspend-demo) w celu demonstracji. – yorkw

+0

Dziękuję za poświęcony czas, postaram się to przetestować JAK NAJSZYBCIEJ. – m0skit0

Powiązane problemy