LINUX.ORG.RU

[C++] [PImpl ]как тестировать внутренности?

 


0

2

Доброго дня, всезнающий All! Наткнулся на стену непонимания: как можно протетсировать скрытую чать пимпла.
Есть класс Class и есть для него ClassImpl

class Class {
private: 
ClassImpl* impl;
}
bla-bla-bla
Подключение хидера для ClassImpl происходит в файле Class.cpp (по всем кононам).
При сборке проекта получаю готовую либу (на основание класса Class). Далее пишу тест (boost test). Подключаю хаголовочный файл от ClassImpl - тут все нормально (методы видны и доступны). А, вот, при линковке начинает ругаться на конструктор (и дальне на все остальное) класса имплементации (ClassImpl).
На сколько я понимаю, они недоступны из либы (pimpl - же)).
Прав ли я и как с этим бороться .
Спасибо!

> как можно протетсировать скрытую чать пимпла.

Зачем? Тестировать надо основной интерфейс.

archimag ★★★
()

тестировать надо не код, а функционал и соответствие интерфейса спецификациям (если надо)

shty ★★★★★
()
Ответ на: комментарий от spike_by

Да и вообще, уже просто интересно, возможно ли.

всё можно, только не нужно, иначе употребив по назначению pimpl придётся переписывать кучу тестов

shty ★★★★★
()
Ответ на: комментарий от JackyTreehorn

Что мешает тебе подключить .cpp?

Спасибо! Это работает)

spike_by
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.