class JsonParser { public: JsonParser() { } ~JsonParser() { } boost::property_tree::ptree parse_json(std::string input_string) { boost::property_tree::ptree pt; try { std::istringstream iss(input_string); boost::property_tree::read_json (iss, pt); return pt; } catch(const std::exception& err) { std::cerr << err.what() << std::endl; return pt; } } }; BOOST_AUTO_TEST_CASE(GetPropertyTreeFromJsonInValidInput) { std::string invalid_json = "abc"; JsonParser *jp =new JsonParser(); boost::thread *t= new boost::thread(boost::bind(&JsonParser::parse_json,jp,invalid_json)); t->join(); BOOST_CHECK(1==1); } BOOST_AUTO_TEST_CASE(GetPropertyTreeFromJsonInValidInput2) //problem is with this test { std::string invalid_json = "abc"; JsonParser *jp =new JsonParser(); boost::property_tree::ptree pt = jp->parse_json(invalid_json); BOOST_CHECK(pt.empty()); }