Building Data-Driven Web Apps with Flask and SQLAlchemy Transcripts
Chapter: Testing web apps
Lecture: Concept: Testing view models
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Let's review testing view models. They're the simplest of the web framework integrated pieces that we have to test. So, we saw that we need to provide
0:10
some sort of request data, set up the flash request and other flash features for the view model. But other than that, it's just calling
0:18
the functions of the view model. So here we're going to test that if we try to register with no email then we're
0:25
going to get an error saying, you have to have an email. So, how do we do it? We have the three A's of testing.
0:31
We're going to arrange, which means we're going to import our registration view model and set up the form data. Notice here, there's no email.
0:38
It's just an empty string. And then, in order for us to work with that data we have to pass it through this test request context in a context
0:48
manager using a with block. So here we say the path is /account/register and the form data that's submitted is email empty password the letter a.
0:57
Second thing is to act. We're going to validate that form data which is going to look and say, oh there's no email
1:03
you're going to have to have an email. It's going to set an error saying that's the case. Then we're going to assert at this error set
1:09
and that email is in the error. Right? You don't want to be too specific. Just specific enough to verify like that case is happening.
1:17
But not so much so that if you slightly change the wording then you've got to rewrite your test. All right, so here's a basic way to do the test.
1:24
Why are we not using mocking and mocking out the database call? Because this validation is more simple. Right? We never made it down to the database
1:32
validation layer, so we don't need to.