Я часто нахожу себя устанавливающим точку останова A где-то в коде и вручную включающей одну или несколько точек останова при достижении этой точки останова. Типичный случай, когда я отлаживаю юнит-тест и не беспокоюсь о предыдущих тестах.
void testAddZeros()
{
Number a(0);
Number b(0);
Number result = a.add(b);
assert((a + b) == Number(0))
}
void testAddOnes()
{
Number a(1);
Number b(1);
Number result = a.add(b);
assert((a + b) == Number(2));
}
void testAddNegativeNumber()
{
Number a(1);
Number b(-1)
Number result = a.add(b);
assert((a + b) == Number(0));
}
Представьте, если testAddZeros()
и testAddOnes()
работают нормально, но testAddNegativeNumber()
. В этом случае установка точки останова на Number result = a.add(b);
будет естественным местом для начала отладки. Теперь представьте, что ошибка находится где-то глубоко внутри Number::add
, поэтому нас не очень интересует то, что происходит в начале Numbers::add
. Что я хочу сделать, так это установить точку останова где-нибудь внутри Numbers::add
, которая срабатывает, только если я нахожусь внутри testAddNegativeNumber()
-теста.
Есть ли способ автоматически включить точку останова B
при достижении точки останова A
?