Que hacer cuando la librería Ensure de serenitybdd te comienza a molestar

Buenas lectores.

Me he encontrado con casos particulares usando la librería Ensure en el IDE de IntelliJ, es posible que se presente en cualquier otro IDE por consiguiente antes de investigar la razón mejor hice una migración al assert para no tener problemas a futuro.

Podemos tener algo así:

jadcode.attemptsTo( Ensure.that(ElementLocated.by("#firstName")) .isDisplayed());


Lo podemos cambiar por lo siguiente:

theActorInTheSpotlight().should(

seeThat(Visibility.of(LocationForm.FIRST_NAME), is(true)));


Si quedamos que no este visible y usando softasserts, sería de la siguiente forma:


theActorInTheSpotlight().should(

seeThat(Visibility.of(LocationInfoWindowView.LBL_STATUS_LASTREPORT), is(false)),

seeThat(Visibility.of(LocationInfoWindowView.LBL_LASTREPORT), is(false)));


Se puede observar que migramos el código a una forma común que todo IDE puede interpretar, sin embargo quieres una solución sin hacer los asserts manuales simplemente actualiza el IDE, con eso funciona.

En caso que te guste mi solución, recuerda agregar las librerias y las importaciones:

import static net.serenitybdd.screenplay.GivenWhenThen.seeThat;

import static net.serenitybdd.screenplay.actors.OnStage.theActorInTheSpotlight;

import static org.hamcrest.CoreMatchers.*;

import net.serenitybdd.screenplay.questions.Visibility;


Saludos.


Fuentes:

https://serenity-bdd.github.io/docs/screenplay/screenplay_ensure

https://github.com/serenity-bdd/serenity-screenplay-train-demo/blob/master/src/test/java/serenitylabs/tutorials/trains/features/steps/BuyTicketsStepDefinitions.java

https://serenity-bdd.info/docs/articles/soft-asserts.html



 

Comentarios

Entradas populares de este blog

Tiempo de espera "muerto" explicito en Playwright

Como tener un condicional en Playwright en caso que siga aun presente un elemento

Subir mi proyecto local a Azure repos