c++ - Why does google test ASSERT_FALSE not work in methods but EXPECT_FALSE does -


both assert_true , assert_false not compile in librarytest class error.

error c2664: 'std::basic_string<_elem,_traits,_alloc>::basic_string(const std::basic_string<_elem,_traits,_alloc> &)' : cannot convert parameter 1 'void' 'const std::basic_string<_elem,_traits,_alloc> &'

it works since in test_f use. expect_false compiles fine in both librarytest class , test_f methods.

how can use assert in method used test_f?

class librarytest : public ::testing::test { public:     string create_library(string libname)     {         string libpath = setup_library_file(libname);          librarybrowser::reload_models();          assert_false(library_exists_at_path(libpath));         new_library(libname, libpath);         assert_true(library_exists_at_path(libpath));         expect_false(library_exists_at_path(libpath));         return libpath;     } };  test_f(librarytest, libraries_changed) {     string libname = "1xevtestlibrary";     string libpath = create_library(libname); } 

functions using of gtest assertions need return void. in case, change function thus:

void create_library(const string &libname, string &libpath) {   libpath = ...   assert_false(...) } 

and use this:

test_f(librarytest, libraries_changed) {   string libname = "foo";   string libpath;   create_library(libname, libpath); } 

Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -