2008-10-05 30 views
25

Tôi có một trường hợp kiểm tra đơn vị Boost làm cho đối tượng được thử nghiệm ném một ngoại lệ (đó là phép thử, gây ra một ngoại lệ). Làm cách nào để chỉ định trong thử nghiệm để mong đợi ngoại lệ cụ thể đó.Làm thế nào để bạn chỉ định rằng một ngoại lệ nên được mong đợi bằng cách sử dụng Boost.Test?

Tôi có thể chỉ định rằng thử nghiệm phải có một số lỗi nhất định bằng cách sử dụng BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES nhưng điều đó dường như không rõ ràng. Tôi muốn có thể nói tại một điểm cụ thể trong thử nghiệm rằng một ngoại lệ nên được ném và rằng nó không nên được tính là một thất bại.

Trả lời

41

Điều này có hiệu quả không?

BOOST_CHECK_THROW (expression, an_exception_type); 

Điều đó sẽ làm cho phép thử vượt qua nếu biểu thức ném loại ngoại lệ nhất định hoặc bị lỗi khác. Nếu bạn cần mức độ nghiêm trọng khác với 'CHECK', bạn cũng có thể sử dụng BOOST_WARN_THROW() hoặc BOOST_REQUIRE_THROW() thay thế. Xem the documentation

10

Bạn cũng có thể sử dụng BOOST_CHECK_EXCEPTION, cho phép bạn chỉ định hàm kiểm tra xác thực ngoại lệ của bạn.

Các vấn đề liên quan