2010-09-21 26 views
26

Tôi đang lập trình một số thử nghiệm đơn vị với khung kiểm tra của Google. Nhưng tôi muốn kiểm tra xem một số khẳng định được đặt tốt và có ích hay không. Có cách nào để nắm bắt một khẳng định trong thử nghiệm của Google không?Làm thế nào để nắm bắt một khẳng định với thử nghiệm của Google?

Ví dụ mã dưới kiểm tra:

int factorial(int n){ 
    assert(n >= 0); 
    //.... 
} 

Và sau đó kiểm tra:

#include <gtest/gtest.h> 
TEST(FactorialTest,assertNegative){ 
    EXPECT_ANY_THROW({ 
     factorial(-1); 
    }); 
} 

Nhưng EXPECT_ANY_THROW không bắt assert nhưng chỉ ngoại lệ. Tôi đang tìm kiếm một giải pháp để nắm bắt các lời khẳng định.

Trả lời

22

Thử nghiệm của Google cung cấp ASSERT_DEATH, EXPECT_DEATH and other related macros.

Câu hỏi này và What are Google Test, Death Tests là câu trả lời của nhau. Điều đó có làm cho chúng trùng lặp hay không? ;-)

+0

Cảm ơn. Đó là tất cả những gì tôi cần. Làm cách nào để tôi đóng câu hỏi? – Killrazor

+2

@Killrazor: Nếu bạn nghĩ rằng đó là sự lừa đảo, thì hãy đóng một câu hỏi bạn nhận được 5 người, mỗi người có đủ đại diện để có sự cho phép đó, để bỏ phiếu để đóng nó. Nhưng tôi sẽ không lo lắng về nó - câu hỏi này sẽ biến mất nhanh chóng khỏi danh sách câu hỏi "gần đây", "hoạt động" và "nóng" nếu nó chưa có, vì vậy nó không phải theo cách của bất kỳ ai. Có thể hữu ích khi sử dụng các cụm từ khác nhau và do đó hiển thị trong các tìm kiếm khác nhau của Google. –

+0

Câu trả lời trùng lặp không cần thiết tạo thành các câu hỏi trùng lặp. Tuy nhiên, câu trả lời của bạn về bản chất chỉ là một liên kết --- không được khuyến khích. –

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