Wpis z mikrobloga

#naukaprogramowania #programowanie #visualstudio
Mirki, jako że projekty coraz większe, trzeba się nauczyć jakoś to sensownie testować. I chodzi o to że nie wiem zbytnio jak się zabrać za testy jednostkowe. W visualu (mam wersje 2015) dla C# kilka się niby na klasę prawym się się tworzy, ale dla C++ już to tak nie wygląda. Robić te testy wbudowanymi narzędziami visuala 2015, czy może NUnit, czy jeszcze czymś innym. Jak je tworzyć, czy przez "wycinanie" klasy z głównego projektu i testowaniu gdzieś zupełnie indziej? Czy wszystkie konwertować na static library, czy może dodawać projekty z testami do solucji. No i jak wygląda organizowanie takiego czegoś przy większych projektach? Bo chyba nie ma się solucji z pięćdziesięcioma projektami, a może tak to jest ;) Nie mam pojęcia :D Polecacie może jakieś fajne tutoriale? Podzielicie się tą wiedzą dla mnie tajemną? Powiecie jak to wygląda w firmach? To jak, pomożecie?
lukas123z - #naukaprogramowania #programowanie #visualstudio 
Mirki, jako że projekt...
  • 6
do testów używaj najlepiej gtest. zależy jak testować chcesz. jeżeli mają to być unit testy to robisz osobny project który kompiluje się do binarki i includuje twój kod, tzn. headery i liby które zbudowales wcześniej i chcesz to testować. poczytaj gtest primer. poczytaj czysty kod i " testować jak Google". co do samego podziału, myślę, że robienie osobnych projektów do każdej klasy to strata czasu i miejsca, testy i tak definiujemy w
@lukas123z: Ja to robię tak (CMake):

Jeśli mam libkę to linkuje ją do binarki z testami, jeśli mam binarkę to źródła dorzucam do binarki z testami. Wada taka, że kod binarki buduje się podwójnie.

Na początku używałem GTest/GMock, ale na dłuższą metę moim zdaniem się nie sprawdzają - zwłaszcza GMock. Ogólnie mockowanie w C++ to nic przyjemnego, a niestety framework Googla do tego prowokuje i łatwo wpaść w "behawioralną pułapkę". Mniej-więcej
addditional includes- dajesz tam katalog do swoich hederow. w testach używasz swoich hederow. w addditional library się dajesz katalog do twego liba i potem dajesz liba