Testowanie: Jak przetestować ten widok zawiera żądane dane

Powiedzmy, że szef kuchni może przygotować przepisy, a szefowie kuchni Sous mogą tworzyć przepisy, które muszą zostać zatwierdzone przez szefa kuchni.

Chcesz sprawdzić, czy szef kuchni ogląda swoją stronę główną, widzi przepisy, które sama stworzyła. Chcesz również sprawdzić, czy widzi, że są przepisy na jej zatwierdzenie.

Mogę wymyślić dwa sposoby:

Sprawdź, czy widok zawiera określone słowa, takie jak „Twoje przepisy” i „Przepisy oczekujące na zatwierdzenie”Dodaj niepotrzebne atrybuty do elementów HTML, których używasz, abyś mógł sprawdzić element z „id = recipe_1” lub „data-for-the-s-of-testing = 1”

Bardzo nie lubię obu tych podejść.

Dlaczego podejście nr 1 jest do baniNiezwykle kruche testy. Za każdym razem, gdy chcesz dokonać drobnych aktualizacji kopii, testy zostaną przerwane.i18n? Jak to działa z tym podejściem?

Prawdopodobnie jest więcej powodów, ale te dwa są całkiem ogromne.

Dlaczego podejście nr 2 jest do bani

Jak denerwujące jest posiadanie zbędnych marży tylko na potrzeby testów! Użytkownik nie powinien mieć zwiększonego rozmiaru pobierania ze względu na testy.

Jakie jest dobre podejście do tego? Jestem zainteresowany usłyszeniem jakichkolwiek alternatyw w jakimkolwiek języku, w którym myślisz. Głównie myślę w Ruby, Test :: Unit, Minitest, RSpec i Cucumber (chociaż moje umiejętności Cuke są nieaktualne), ale jeśli inne języki / frameworks czy to zorientowało się, chciałbym też zobaczyć, co oni robią.

questionAnswers(4)

yourAnswerToTheQuestion