Podejście do nazewnictwa BDD działa doskonale, gdy istnieje jedna metoda w klasie, którą testujesz. Załóżmy, że mamy klasę Connector, która ma metodę Connect:Nazewnictwo BDD dla kilku metod
Should_change_status_to_Connected_if_Disconnected
Piękna, prawda? Ale czuję się zdezorientowany, gdy muszę wymieniać testy, gdy istnieje kilka metod w klasie (załóżmy, że dodaliśmy metodę Disconnect do naszej klasy).
Widzę dwa możliwe rozwiązania. Pierwszą z nich jest dodanie prefiksu z nazwą metody jak:
Should_change_status_to_Connected_if_Disconnected_when_Connect_was_called
Innym podejściem jest wprowadzenie zagnieżdżonych klas testowych dla każdej metody jesteś testowania.
public class ConnectorTests
{
public class ConnectTests
{
public void Should_change_status_to_Connected_if_Disconnected()
{
...
}
}
public class DisconnectTests
{
public void Should_change_status_to_Disconnected_if_Connected()
{
...
}
}
}
Szczerze mówiąc, oba te podejścia są nieco odczuwalne (może być tylko dlatego, że nie jestem do tego przyzwyczajony). Jaka jest zalecana droga?
Czy możesz dodać więcej kontekstu do swojego pytania. Jaka jest różnica między methodA i methodB. Oboje coś robią? –
@SergeyBerezovskiy, naprawdę miałem na myśli ogólny przypadek, gdy klasa zawiera kilka metod. – SiberianGuy
Przykro mi, ale nie jest jasne, jaki masz problem. Metoda wprowadza pewne zachowanie. Jeśli metoda A jest dla * somethingA *, a metodaB dla * somethingB * to twój problem nie jest jasny. Jeśli zarówno dla * somethingC *, to jaka jest różnica między * methodA * i * methodB *? –