2013-02-20 18 views
15

Trong nhật thực, nếu tôi chạy một chương trình Java ở chế độ gỡ lỗi không có điểm ngắt và nếu JVM truy cập NullPointerException, Eclipse sẽ làm nổi bật dòng mã lỗi, và hiển thị các biến cục bộ, v.v. Thực thi bị tạm dừng. Tôi có thể đánh giá mã bằng cách sử dụng tab Hiển thị, v.v.Cách gỡ lỗi các kiểm tra JUnit tương tự như một chương trình Java thông thường trong Eclipse

Nhưng, nếu tôi chạy thử nghiệm JUnit ở chế độ gỡ lỗi và jvm nhấn NullPointerException, jvm không tạm dừng và tôi không có cơ hội để xem các biến cục bộ.

Có thể chạy các kiểm tra JUnit để JVM sẽ tạm dừng tự động khi tôi nhấn NullPointerException, mà không cần sử dụng điểm ngắt?

Edit: Sử dụng JUnit 4 & Juno

+0

Tôi nghĩ rằng đúng cách để nói điều này, là làm thế nào để sử dụng nhật thực gỡ lỗi sau khi chết trong các bài kiểm tra JUnit. – Eddified

+3

Bạn đã đặt một điểm ngắt ngoại lệ cho 'java.lang.NullPointerException' hoặc đặt một điểm ngắt trên dòng được chỉ định bởi stacktrace chưa? – beny23

+0

Tôi tìm thấy câu hỏi trùng lặp: http://stackoverflow.com/questions/13611711/junit-4-and-suspend-on-exception – Eddified

Trả lời

0

Eclipse dừng khi trường hợp ngoại lệ được ném là không bị bắt và sẽ làm bạn khó chịu(). Tuy nhiên, khi bạn chạy với khung công tác JUnit, tất cả các ngoại lệ đều bị JUnit bắt giữ, vì vậy Eclipse không dừng lại.

Hai giải pháp tôi suy nghĩ:

  • bộ ngoại lệ brekpoint dừng lại khi NPE được ném
  • sử dụng stack trace của ngoại lệ báo cáo của JUnit và thiết lập các breakpoint trên dòng ném ngoại lệ (đó là một cái tôi thích).
0

Bạn có thể nhìn thấy nó trên tab JUnit, nếu bạn kích đúp vào dòng đó có một vấn đề, bạn sẽ đi đến vị trí ngoại trừ con trỏ null- đã xảy ra.

java.lang.NullPointerException  <--First line of the error 
at.com.myProject.MyClass.myMethod(MyClass.java:theLineOfMyCode) <-- the line that you should double-click 

Sau khi bạn thực hiện việc này, bạn sẽ được chuyển hướng đến dòng lỗi.

+4

Tôi biết tất cả điều này. Câu hỏi đặt ra là làm thế nào để tạm dừng thực hiện JVM tại điểm ngoại lệ, không phải cách tìm vị trí của Ngoại lệ. – Eddified

2
  1. đúp bộ nhấp chuột breakpoint

  2. chế độ
  3. Sử dụng Debug để chạy trong Eclipse

Hover trên mà dòng mã, và sau đó nhấp vào step over hoặc f6