#100DaysOfWeb in Python Transcripts
Chapter: Days 81-84: Unit testing web apps
Lecture: Concept: Testing view methods
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Now you've seen testing views in action let's review the core concepts. The idea is, we're going to need to supply a real, legitimate request object
0:10
from the web framework, over to the view method. Probably that view method is already working on the view model which ideally has its own set of tests.
0:17
So these should be pretty straightforward. So here's a straightforward example let's test the homepage. So we're going to do our three As:
0:24
arrange, act, and assert. So we're going to import the index. We're going to make a dummy request. We'll call the index method, passing the request.
0:31
This is the view method the thing the URL generally goes to. What we get back is one of two things: either a response object, or a dictionary.
0:39
Here, this particular one, under this circumstance is going to give us back a dictionary. So we're going to grab the user out of it
0:46
and we're going to assert some things: that they're not none, that they have some bills things like that. Here's the ideal world.
0:51
In practice, it's a little messier as you can see from the size of this box and the size of the fonts. In reality, we're probably talking to a database
1:00
and some other things that make this more complicated. So, again, we're going to import our index. Now, we're going to create a dummy request
1:07
but we're going to also setup some additional information to pass along. We're going to create a mock user here
1:12
and then the big thing is, we're going to patch out the get_user_by_id, to return this mock user. Otherwise, we'd have to have the database
1:20
actually setup, and actually talk to the database. So here we're going to call index. Again, we get back our info, but this operation here
1:28
calls now the fake, the mocked out, get_user_by_id and then we're going to the same asserts that we got back the user, that we got back their bills
1:36
and so on. So in practice, it's not quite as simple as we saw that first time, but not too bad. Once you learn how to use mocked up patch
1:44
you're in good shape.