Metody generowanie testowych danych w .NET

Częstym problemem – szczególnie podczas tworzenia aplikacji typu Proof of Concept jest szybkie generowanie danych testowych.

W mojej aplikacji – CyberHome – chciałem sprawdzić wydajność bibliotek do automatycznego mapowania jednej klasy na drugą, skąd jednak wziąć wystarczająca ilość danych testowych? Jest do tego kilka wartościowych narzędzi.

nBuilder

nBuilder – to bardzo wygodna i prosta w obsłudze biblioteka, niestety nie rozwijana od 2012 roku.

Instalacja:

Install-Package NBuilder

Przykład użycia:

Spowoduje utworzenie 10-elementowej listy obiektów klasy Person z wypełnionymi właściwościami.

Polecam lekturę wiki projektu i dokumentu na GitHubie – jest tam dostępne wiele przydatnych przykładów, np. generowanie danych z określonymi wartościami atrybutów:

Możemy też generować chierarchie obiektów:

Podsumowanie:

Podstawowa wadą nBuildera jest losowość generowanych encji oraz niezbyt rozbudowane możliwości konfiguracji.
Do większości zastosowań jednak wystarczy. NBuilder jest szybki, prosty w obsłudze i wygodny.

Faker.js i Bogus

Być może część z Was słyszała o projekcie faker.js  (GitHub) umożliwia on generowanie całkiem sensownych, konkretnych danych, a nie – jak nBuilder – przypadkowych.

API umożliwia generowanie wszystkich danych, których najczęściej potrzebujemy, dostępne są następujące kategorie:

  • address
  • commerce
  • company
  • date
  • finance
  • hacker
  • helpers
  • image
  • internet
  • lorem
  • name
  • phone
  • random
  • system

Jeśli kogoś intrygują niektóre nazwy – zapraszam na stronę projektu celem wypróbowania do czego służą. 🙂

Brian Chavez stworzył .NETowy port do Faker.js o polsko brzmiącej nazwie Bogus (od ang. podrobiony), używa się tego bardzo przyjemnie i szybko:

install-Package Bogus

Na gitHubie jest przejrzysta dokumentacja oraz liczne przykłady.
Poniżej krótka prezentacja kilku możliwości:

Bogus umożliwia generowanie danych w rożnych językach, w tym po polsku!

Mamy również gotową klasę Person modelującą większość powszechnych atrybutów osoby – bardzo przydatne w testach!

Podsumowanie:

Bogus jest szybki, ciągle rozwijany i ma duże możliwości konfiguracji; dodając do tego przejrzystą dokumentację i dobry kontakt z autorem – wyłania się nam bardzo dobry framework do generowanie testowych danych dla naszych aplikacji.

Na koniec krótki przykład z mojego programu:

Generowanie 200 000 instancji klasy trwa mniej niż 7 sec!


Artykuł w ukazuje się w ramach projektu CyberHome tworzonego w ramach akcji DajSięPoznać.


 

3 przemyślenia nt. „Metody generowanie testowych danych w .NET

  1. Pingback: Repozytorium | langusblog

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.