HippoMocks - Как смоделировать Win32 API функцию - PullRequest
3 голосов
/ 21 марта 2012

Документация HippoMocks гласит, что он может макетировать функцию C, включая функцию Windows API, но я не смог найти никакого примера для этого.Кто-нибудь может привести пример насмешки над Windows API?

http://www.hippomocks.com/wiki/index.php/What_can_be_mocked

1 Ответ

4 голосов
/ 26 марта 2012

Мне нужно выпустить новый релиз, это точно.

Вы можете смоделировать функцию API так же, как и любую другую функцию, за исключением того, что вы не указываете объект для вызова (потому что он не имеет никакой функции). Я много тестировал на Linux с помощью обычных функций libc API, и это работало невероятно хорошо. Windows не должна отличаться, но вот почему мой пример будет выход:

void test() {
    MockRepository mocks;
    mocks.ExpectCallFunc(&exit).With(2).Throw(std::exception());
}

Обратите внимание, что это работает для любой функции, включая те, которые указаны как никогда не возвращаемые. Если вы скажете HippoMocks о том, что имитируйте функцию, которая не должна возвращаться, возможно, код возврата не был сгенерирован, что вызвало ошибки. Попробуйте вместо этого создать исключение для конкретного теста. Теперь, когда я думаю об этом, это было на Windows с VS2008, где буквально не было никаких кодов операций, кроме вызова на выход.

Надеюсь, ты сможешь заставить его работать. Обязательно возьмите самый последний коммит на Git (от Assembla), так как последний релиз еще не содержит его.

...