Я использовал комбинацию Xerces и CPPUnit для достижения этой цели в прошлом. В моих тестовых случаях я создал бы объект DOM с API Xerces в функции setUp (). Этот DOM будет представлять мои ожидаемые результаты. В самом тестовом примере я бы затем прочитал файл XML, а тестируемый класс заполнил бы объект DOM, представляющий содержимое файла. Чтобы проверить равенство, я бы прошел через два дерева DOM через API Xerces (DOMTreeWalker) и использовал утверждения CPPUnit, когда сравнивал содержимое узлов DOM. Это было немного утомительно, но в то время не было доступных фреймворков, которые могли бы имитировать XmlUnit. Я полагаю, что Google Test будет работать так же хорошо, как CPPUnit для выполнения этой задачи.
API Xerces имеет некоторую поддержку выражений XPath:
http://xerces.apache.org/xerces-c/faq-parse-3.html#faq-2
Для проверки вам необходимо настроить обработчик ошибок, как упомянуто здесь, и включить его в ваш тестовый пример:
Проверка документа в Xerces C ++
Для проверки XSLT-преобразования вам понадобится Xalan. Он работает с Xerces, поэтому я не ожидаю каких-либо серьезных трудностей:
http://xalan.apache.org/old/xalan-c/index.html
Мне не удалось найти какие-либо очевидные продукты, которые упаковывали XMLUnit-подобные операции в C ++. Таким образом, ответ, я думаю, вам придется свернуть свой собственный. Удачи.