Текущий продукт, над которым я работаю, - это служба Windows, написанная на C++, и в дальнейшем все новые функции будут иметь для этого модульные тесты. Но это создает интересную проблему (по крайней мере, для меня) мы делаем много вызовов Win32 для разных вещей и ведем себя соответственно, поэтому для завершения модульных тестов было бы неплохо протестировать различные выходы, а не только текущую систему государство.Mocking и Win32 API-вызовы
Вопрос в том, что является лучшим способом издеваться над результатами вызовов Win32? Я подумал о двух разных методах:
1) Поместите все вызовы Win32, используемые в указатели на функции, и передайте их в функции или классы (в зависимости от того, сколько раз они попадают), которые используют их, и используют это, чтобы получить макет Результаты.
2) Имейте много #ifdef UNITTEST
всюду, и если он вызывает мои собственные специальные методы или вызывается нормальным, если нет.
Я полностью отсюда, или отсутствует фундаментальная часть знаний?
Что делать, если вам нужны аргументы для того, чтобы изменить поведение UnitTestMessageBox? #ifdef UNITTEST #undef MessageBox #define MessageBox UnitTestMessageBox #endif – Manolete