CxxTest: наследование от пользовательского набора тестов и пропуск выполнения теста базового класса - PullRequest
0 голосов
/ 16 марта 2020

У меня есть следующая иерархия классов:

class A: public CxxTest::TestSuite
{
     _prerequisitefunc();
public:
     testA() { _prerequisite(); doTestAStuff(); }
};

class B: public A
{
public:
    testB() { _prerequisite(); doTestBStuff(); }
};
  1. Разрешено ли это - с точки зрения набора тестов B, наследуемого от A?
  2. Когда я вызову набор тестов B, произойдет ли он также выполняет testA ()?
  3. Если ответом на 2 является «да», то следует ли он в порядке выполнения testA () перед testB ()?
  4. Я не хочу testA ( ) должен выполняться при вызове набора тестов B. Могу ли я наследовать от A в защищенном / приватном режиме, чтобы testA () был защищенным / приватным в классе B? Будет ли это препятствовать обнаружению testA () как части набора тестов B?

Спасибо!

PS Для всех, кто интересуется дополнительным контекстом - у меня есть два теста - testA и testB, которые оба имеют общий код, который абстрагируется в функции _prerequisite. Я не могу поместить и testA, и testB в один и тот же набор тестов, потому что мне нужно, чтобы testA всегда выполнялся перед testB (testA изменяет состояние в среде sys, необходимое для testB - не могу имитировать). Я хочу иметь возможность использовать общий код, одновременно выполняя эти два теста независимо.

...