#100DaysOfWeb in Python Transcripts
Chapter: Days 81-84: Unit testing web apps
Lecture: 3 types of tests

Login or purchase this course to watch this video and the rest of the course contents.
0:00 Now when we think of testing our web application there's actually different layers of our app that we might want to test.
0:07 At the lowest level, we might want to test these things called View Models, we'll talk more about those
0:11 but they're basically involved in the data exchange between the view and the template. And we're going to introduce those next.
0:17 We also might want to just call those View Methods and we might want to call them directly or we might want to let all the functionality
0:23 of the web application run and then create a sort of fake request against it. So you'll see there's these different levels
0:29 of testing within our web application and these different levels require different amounts of scaffolding or support structures to make them
0:37 believe that they're actually running in a web request in a web server. Now all this ignores the external types of testing.
0:44 Load testing, performance testing automation with selenium, things like that. But we're talking about using unit testing frameworks
0:51 and interacting with their web app and testing it that way. So in this world, we have these three types. We might test the View Model
0:57 and in our world the View Model probably requires a request. And this request comes from the web framework.
1:03 From Pyramid, Flash, Django, whatever, right. We got to create a way to get that request there. We might call the View Method directly
1:09 which may interact with this View Model we're going to define and again, that requires a request object
1:14 at least within the Pyramid framework to be passed over and sort of ambiently in Flask and finally we might want to create a fake web request
1:23 that calls the main method of our app it starts it up, it configures all the things the routing and everything, it actually runs
1:30 through the routing so it'll create a fake HTTP request and test it that way. So we'll see with the first two
1:36 we have a limited amount of scaffolding we have to create mostly around the request and not interacting with the database, things like that.
1:42 The one on the right here actually requires a little bit more work. So we're going to do all of this in this testing chapter.

Talk Python's Mastodon Michael Kennedy's Mastodon