Мне нужно вызвать bad_alloc для моего модульного теста (в основном, для покрытия 100% кода, я не могу изменить некоторые функции). Что мне делать?
Вот мой пример кода. Я должен вызвать bad_alloc где-то здесь.Как вызвать bad_alloc
bool insert(const Value& v) {
Value * new_value;
try {
new_value = new Value;
}
catch (std::bad_alloc& ba){
std::cerr << "bad_alloc caught: " << ba.what() << std::endl;
return false;
}
//...
//working with new_value
//...
return true;
};
Попробуйте выделить смехотворно большой массив вашей ценности. –
@AnonMail проблема в том, что мне нужно только одно значение, если нет bad_alloc. –
Вы пытаетесь выполнить стресс-тест как единичный тест. Этот подход обычно не рекомендуется, и, кроме того, его трудно достичь без добавления какого-либо кода, по крайней мере, используя директивы компилятора, такие как #ifdef TEST_3 и т. Д. –