Я нахожусь в процессе написания довольно сложного приложения для Магазина Windows. Чтобы сохранить код поддерживаемым, я хотел бы хорошо использовать модульные тесты. Пока что мои решения состоят в следующем:
Тестирование классов C ++ WinRT ViewModel с проектом C # работает нормально. Неважно, что это другой язык, потому что все общедоступно и использует интерфейс WinRT.
Тем не менее, для тестирования классов слоя модели я не уверен, что делать. Я хотел бы, чтобы мои тестовые случаи были в отдельном проекте, но я не уверен, возможно ли это вообще. Я хочу сохранить здесь все стандарт C ++ по причинам переносимости. Кроме того, я стараюсь скрыть все, чтобы придерживаться строгого дизайна MVVM.
Как мне написать модульные тесты Visual Studio (например, те, которые находятся в моей ViewModel «Библиотека модульных тестов (приложения Магазина Windows)») для моего стандартного уровня модели C ++?
Один из вариантов, на который я сейчас обращаюсь, — это создать «Native Unit Test Project» и использовать папку для моего проекта слоя модели в качестве каталога для этого. Похоже, я почти там, но я получаю «ошибка LNK2019: неразрешенный внешний символ». Как я могу построить файлы CPP для объектов, которые включены в тестовый проект.
Вы должны создать собственный тестовый проект C ++ для тестирования вашего бизнес-кода. Но есть несколько параметров проекта, которые необходимо изменить:
unresolved symbol error
, так как только заголовочные файлы включены, но не реализации (* .Cpp).Это увеличит время компиляции (один и тот же код компилируется дважды), а также размер двоичного файла (весь бизнес-код должен быть скомпилирован / связан в тестовых двоичных файлах).
Но насколько я знаю, если ваш проект не является динамической / статической библиотекой, но исполняемый файл или какой-либо другой формат не может экспортировать символы, это единственный способ.
Других решений пока нет …