Этот GTEST бросает ошибку времени выполнения: «Неизвестный файл: ошибка: исключение SEH с кодом 0xc0000005, добавленное в тестовый орган».
Код: Выделить всё
TEST(CardTests, JsonSave) {
Card card("word", "hint", "text", "translation");
json::object json = card.to_json();//
Card test1(json); // constructs correctly
EXPECT_EQ(card, test1);//equal as expected
string s = json::serialize(json);// null string with length 142
ASSERT_NE(s.size(), 0);//passes
json::value parsed = json::parse(s);//SEH exception with code 0xc0000005 (I'm guessing something to do with a null pointer dereference
Card test2(parsed); //not reached
EXPECT_EQ(card, test2); //not reached
}
bool test_card_json() {
Card card("test","hint","text", "translation");
json::object json_data = card.to_json();
if (card != Card(json_data)) return false;
string s = json::serialize(json_data);
if (s.size() == 0) return false;
json::value parsed{};
try { parsed = json::parse(s);}
catch (...) { return false; }
if (card != Card(parsed.as_object())) return false;
std::cout
Оба файла имеют: < /p>
namespace json = boost::json;
using string = std::string;
< /code>
Я не уверен, есть ли что -то прикольное с настройками между решениями, или есть ошибка доступа к памяти в обоих тестах, что приводит к сбою в GTEST. Если это важно, я запускаю тесты в отдельном проекте в рамках того же решения Visual Studio 2022, используя в режиме отладки в C ++ 23. Запуск двух тривиальных проходов и Fail GTESTS дает ожидаемые результаты. < /P>
Извините, если какая -либо информация отсутствует. Я довольно новичок в программировании, и это мой первый пост о переполнении стека.
Подробнее здесь: https://stackoverflow.com/questions/797 ... nobject-in
Мобильная версия