Я заметил, что некоторые проекты ссылаются на gtest_main-mdd.lib
, а другие на gmock_maind.lib
в моей установке Visual Studio 2010, и хотел узнать, в чем разница между двумя библиотеками?
В чем разница между gmock_main и gtest_main?
Ответы (1)
В проектах не обязательно использовать и gtest
, и gmock
, но можно выбрать использование gtest
без gmock
или наоборот. В любом случае вам нужен способ ввести основную функцию, поэтому у вас есть 2 библиотеки для ее введения.
В любом случае, если вы используете оба, то лучше использовать gmock_maind.lib
, так как у него есть инициализация для фиктивной среды, а также для тестовой среды. Пока gtest_main-mdd.lib
инициализирует только тестовую часть. Посмотрите на gmock_main.cc и gtest_main.cc
person
ixSci
schedule
26.06.2015
Значит ли это, что
gmock_maind.lib
предполагает, что вы используете его вместе с gtest
? Если нет, и вы делаете ссылку на обе, как вы можете иметь две функции main
? Это делается в линкере через слабые символы или как?
- person nonsensickle; 26.06.2015
@nonsensickle, обе эти библиотеки предназначены только для инициализации. Вы можете вообще их не использовать, можете создать свой main и самостоятельно добавить необходимую инициализацию. Но как только вы использовали любую из библиотек, у вас есть основная функция из этой библиотеки. Это только одна функция
main
в каждой библиотеке, поэтому вы не можете использовать обе библиотеки одновременно, а только по одной за раз. Gmock знает о gtest
и вызывает для него функции инициализации, тогда как Gtest ничего не знает о gmock
и, следовательно, не инициализирует его.
- person ixSci; 26.06.2015
gmock_maind.lib
расширенным набором функцийgtest_main-mdd.lib
? - person nonsensickle   schedule 26.06.2015