Domanda

Ho un "quando" in JBehave che in determinate circostanze dovrebbe generare un'eccezione. Non posso trovare alcuna documentazione, tuttavia, su come gestire questa situazione. Qui è il mio piano d'azione:

dato un gioco con 6 scommesse esistenti e le scommesse max del gioco sono 6 quando un utente effettua una scommessa

non c'è, allora, perché voglio un'eccezione generata quando l'utente posiziona la scommessa.

Tenete a mente, non sempre voglia il quando un'eccezione. Per esempio. quando le puntate esistenti sono meno di scommesse max. In questo caso, voglio fare un po 'assicurare nel "poi".

È stato utile?

Soluzione

Dettagli di implementazione e di "Computer-ese" non appartengono a scenari


La mia comprensione di BDD è che è degli stakeholder -focused, permettendo non tecnico le persone a scrivere ciò che un sistema che deve fare, utilizzando (più o meno) naturali il linguaggio, in modo che gli sviluppatori possono codificare a:

Si estende TDD scrivendo casi di test:

  

in un linguaggio naturale che   non programmatori possono leggere.   
[ wikipedia ]   

Detto questo, una delle parti interessate non avrebbe mai scrivere "un'eccezione" in un "Poi". Avevano probabilmente scrivono:

Given a game where 6 bets are allowed and 5 bets have been made,
When a user makes the 6th bet,
Then the "Bet" button should become disabled.

o

Given a game where 6 bets are allowed and 6 bets have been made,
When a user tries to make a bet,
Then the a message appears, saying: 
       "You can not bet. The maximum of 6 bets has already been placed."

Altri suggerimenti

Non ci sono ancora risposte, io darò una prova. Il modo di fare questo è memorizzando eccezione come parte dello stato interno della attuazione Steps`:

public class MySteps extends Steps {

  private Throwable throwable = null;

  @When("something happens")
  public void somethingHappens() {
    try {
      // Event part of the specification          
    } catch (MyException e) {
      throwable = e;
    }
  }

  @Then("an exception is thrown") {
  public void verifyException() {
    assertThat(throwable, allOf(notNullValue(), myExceptionMatcher())); 
  }

  private Matcher<Throwable> myExceptionMatcher() {
    // Build and return some Matcher instance
  }

}

Questo funziona bene per me, ma richiede un'attenta gestione dello stato.

Abbiamo usato il modello suggerito da Nils Wloka, risposta molto valida, catturare l'eccezione in "Quando" utilizzando prova -.> Cattura e poi convalidare contro eccezione prevista nel "Allora" step

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top