Wpis z mikrobloga

Sytuacja jest taka ze mam prawo uzyc funkcji weryfikujacej(assert, expect, to.be.boolean whatever) tylko na poziomie testu. W miedzyczasie obowiazuje Page Object Model i ja bym juz na tym poziomie uzyl sobie szybkiej weryfikacji, ale nie moge bo zabronione.
Mam aplikacje treningowa gdzie jest tez sledzenie posilkow(cos w rodzaju fitatu), wiec w klasie DietPage mam metode usuwajaca mi kafelek z posilkiem:

class DietPage:
def removeMeal():
REMOVEMEALBUTTON.click()
assert MEAL.not.to.be.visible()

Czy dodanie tutaj bezposrednio po clicku weryfikacji czy operacja zakonczyla sie sukcesem w stylu MEAL.not.to.be.visible() czy tam assert currentCounter == beforeCounter - 1 to jest jakas zbrodnia? Jako tlo mozemy zalozyc ze test ma testowac czy suma kalorii sie zmniejszy po usunieciu jednego kafelka z posilkiem z listy.
#testowanieoprogramowania
  • 5
  • Odpowiedz
@Pmpa: Dużo zależy od podejścia, ale ja w pełni jest zwolennikiem tego, że asercje są robione tylko w klasie testowej.
Robisz sobie metodę, która usuwa posiłek, wywołujesz ją w teście i w teście sprawdzasz asercją, czy faktycznie kafelka już nie ma.

Zalety:
1. Po wejściu w klasę testową od razu widać co jest sprawdzane w danym teście.
2. Możesz też użyć tej metody do testu negatywnego (np. powiedzmy, że masz mieć
  • Odpowiedz
via Wykop
  • 0
@diarrhoea:

1. Po wejściu w klasę testową od razu widać co jest sprawdzane w danym teście.

test ma sprawdzac czy kalorie sie zmniejsza, i to jest oczywiscie sprawdzane w klasie testowej, ale do tego jest potrzebne przeczekanie az kafelek z produktem sie usunie, a wywolujac metode removeMeal zakladam ze skoro ja wywolalem to akcja powinna zakonczyc sie sukcesem. I tu wlasnie wychodze z zalozenia ze expect jest nowym waitem(let is new
  • Odpowiedz
@Pmpa jeśli asercja w klasie page object pomoże ci potem lepiej, szybciej, sprawniej zdebugowac co poszło nie tak to ja jestem za i uważam że to dobry pomysł. Takie fail fast żeby zgłaszać że coś się popsuło tak szybko jak tylko się da żeby potem łatwiej dojść do przyczyny - dla mnie super. Tylko nie mówię tutaj o Twoim konkretnym przykładzie tylko tak ogolnie.

No tylko też żeby potem właściwy test nie
  • Odpowiedz
via Wykop
  • 0
@wykopranger: dobrze zrozumiales, test ma sprawdzic czy kalorie sie zmniejsza jak usuniesz posilek i calories.to.be.lower() jak najbardziej popieram zeby bylo na poziomie test runnera w klasie testowej, a nie w Page.
Tez nie chcialem tak dokladnie wprost pisac ze ta natychmiastowa asercja sprawdzajaca/czekajaca az akcja zakonczyla sie sukcesem na poziomie Page jest minimalna i jedna, bo na projekcie zarzucali mi argument ze jak sie pozwoli na assert w Page to nagle
  • Odpowiedz