w przypadku TDD „dobre” funkcje testowe , których chce klient ; funkcje niekoniecznie odpowiadają funkcjom, a programista nie powinien tworzyć scenariuszy testowych w próżni
w twoim przypadku - zgaduję - „funkcją” jest to, że funkcja dopasowania modeluje dane wejściowe z pewną tolerancją błędu. Ponieważ nie mam pojęcia, co naprawdę robisz, coś wymyślam; miejmy nadzieję, że jest to przeciwwskazane.
Przykładowa historia:
Jako [Pilot X-Wing] chcę [błąd dopasowania nie większy niż 0,0001%], aby [komputer namierzający mógł trafić w otwór wylotowy Gwiazdy Śmierci, gdy porusza się z pełną prędkością przez kanion pudełkowy]
Idź więc porozmawiać z pilotami (i z komputerem docelowym, jeśli czujesz). Najpierw mówisz o tym, co „normalne”, a potem o tym, co nienormalne. Dowiesz się, co naprawdę ma znaczenie w tym scenariuszu, co jest wspólne, co jest mało prawdopodobne i co jest po prostu możliwe.
Powiedzmy, że normalnie będziesz miał półsekundowe okno na siedem kanałów danych telemetrycznych: prędkość, skok, przechylenie, odchylenie, wektor docelowy, rozmiar celu i prędkość celu, i że te wartości będą stałe lub zmieniają się liniowo. Nienormalnie możesz mieć mniej kanałów i / lub wartości mogą się szybko zmieniać. Więc razem wymyślić niektórych badań, takich jak:
//Scenario 1 - can you hit the side of a barn?
Given:
all 7 channels with no dropouts for the full half-second window,
When:
speed is zero
and target velocity is zero
and all other values are constant,
Then:
the error coefficient must be zero
//Scenario 2 - can you hit a turtle?
Given:
all 7 channels with no dropouts for the full half-second window,
When:
speed is zero
and target velocity is less than c
and all other values are constant,
Then:
the error coefficient must be less than 0.0000000001/ns
...
//Scenario 42 - death blossom
Given:
all 7 channels with 30% dropout and a 0.05 second sampling window
When:
speed is zero
and position is within enemy cluster
and all targets are stationary
Then:
the error coefficient must be less than 0.000001/ns for each target
Być może zauważyłeś, że nie ma scenariusza dla konkretnej sytuacji opisanej w historii. Okazuje się, po rozmowie z klientem i innymi interesariuszami, że cel w oryginalnej historii był tylko hipotetycznym przykładem. Prawdziwe testy wyszły z późniejszej dyskusji. To może się zdarzyć. Historia powinna zostać napisana od nowa, ale nie musi tak być [ponieważ jest ona jedynie symbolem zastępczym do rozmowy z klientem].