Lo scenario di BDD dovrebbe essere il più minimale possibile, o si stanno facendo più casi in loro ok?

3

Supponiamo di testare le intersezioni dei segmenti di linea e le intersezioni considerano le linee parallele e collineari per non intersecare mai. Quale sarebbe più naturale scrivere?

Un caso si è inceppato e il titolo dello scenario sembra ampio, ma impedisce di dover scrivere una certa variabile più volte, ma a spese del nome del test dello scenario non essendo più generico. È così male?

Casi molto simili in uno scenario (questo è un framework per test unità C ++ , quindi è un po 'diverso da dire JUnit):

SCENARIO("A vertical line segment does not intersect another vertical line segment") {
    LineSegment segment = ...

    GIVEN("Two vertical line segments that are parallel") {
        LineSegment parallelSegment = ...

        // ... when, then
    }

    GIVEN("Two vertical line segments that are collinear") {
        LineSegment collinearSegment = ...

        // ... when, then
    }
}

o un singolo scenario per ogni caso, anche se significa lo stesso:

SCENARIO("Parallel vertical line segments are classified do not intersect") {
    GIVEN("Two parallel vertical line segments") {
        LineSegment segment = ...
        LineSegment parallelSegment = ...

        // ... when, then
    }
}

SCENARIO("Collinear vertical line segments are classified do not intersect") {
    GIVEN("Two collinear vertical line segments") {
        LineSegment segment = ...
        LineSegment collinearSegment = ...

        // ... when, then
    }
}

È meglio essere il più contenuti possibile con gli scenari in modo che sia facile leggere dal nome dello scenario (se il test fallisce) che cosa è andato storto? O va bene fare più test per uno scenario se strettamente correlati? O forse detto meglio, ogni scenario dovrebbe esattamente una cosa e solo quell'unica cosa?

    
posta Water 31.03.2018 - 21:52
fonte

1 risposta

2

Se stai chiedendo informazioni su BDD, una delle cose che stai cercando di ottenere è che il testo del test corrisponda alla formulazione del requisito.

La formulazione del requisito può spesso essere abbastanza ampia e coprire più di un caso.

Tuttavia, se stai chiedendo dei test unitari, vuoi fare in modo che i test testino una sola cosa, quindi quando falliscono sai esattamente cosa fallisce.

Non vuoi allontanarti troppo dalla formulazione del requisito, suddividendo i requisiti in termini tecnici dispari che l'utente finale non comprenderà. Ma non c'è nulla di male nell'avere test unitari aggiuntivi per i requisiti tecnici dove il requisito è ampio

    
risposta data 01.04.2018 - 21:51
fonte

Leggi altre domande sui tag