[#] Генератор тестовых данных для C++
habrabot(difrex,1) — All
2017-04-17 10:30:04


![image][1]



При unit-тестированиии кода рано или поздно встает вопрос тестовых данных. И если в одном случае достаточно просто несколько жестко зашитых переменных, то в других случаях необходимы сколько-нибудь большие и случайные данные. В управляемом мире нет проблем с генерацией пользовательских типов (взять тот же Autofixture), но мир C++ зачастую вызывает боль и страдание (поправьте меня, если это не так). Не так давно я познакомился с замечательной библиотекой boost::di и под ее влиянием у меня начала созревать идея библиотеки, которая позволила бы C++ программистам генерировать пользовательские типы данных, забитых случайными значаниями, и это не потребовало бы предварительного их описания. Получилось что-то вроде:


struct dummy_member{
float a;
int b;
};
struct dummy{
explicit dummy(dummy_member val, std::string c) : val_(val), c_(c) {}
private:
dummy_member val_;
std::string c_;
};
int main(int argc, char* argv){
auto d = datagen::random();
return 0;
}

→ [Ссылка на код][2]. Библиотека header-only,C++14. Всех интересующихся прошу под кат.

[Читать дальше →][3]

[1]: https://habrastorage.org/files/761/14f/453/76114f45323147bc9cec24372b1ddd55.jpeg
[2]: https://github.com/ukhegg/datagen
[3]: https://habrahabr.ru/post/326576/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut