Я много занимался сборкой фреймворка - в основном вызывал классы / интерфейсы, которые хотел протестировать. На занятиях не было никакой дополнительной работы.
Я также несколько раз создавал классы, которые делали публичные методы виртуальными. Я получил от них и сделал тестовые классы / объекты. Методы тестового объекта вызывали методы родительского (реального класса), а также регистрировали все вызовы и результаты. Это было больше для ведения журнала, чем для тестирования, но оно также работало.
Методы, описанные выше, я делал до того, как появилась шумиха по поводу модульного тестирования и тому подобное. (около конца 1990-х годов)
Тогда это работало хорошо для меня, но я не слишком много сделал с вещами Junit / nunit, и я действительно хочу дать им толчок в реальных проектах.
образец для одного метода
Класс Вещи
{...
общественность:
виртуальный DoStuff ();
,
..
};
класс ThingTest: общедоступная вещь
{
виртуальный DoStuff ()
{
// записать вызов и параметры.
// сделать звонок родителю
// записать возвращаемое значение
// возвращаем возвращаемое значение
}
* +1034 *};