Building data-driven web apps with Flask and SQLAlchemy Transcripts
Chapter: Testing web apps
Lecture: Why write tests (web)
0:00 Our web app is basically built.
0:02 All we have left to do is test and deploy it.
0:05 So let's talk about testing web applications.
0:08 Now this is not a chapter on unit testing
0:11 and all of it's benefits in general.
0:14 The goal is to focus on testing web applications.
0:17 Addressing some of the challenges that we'll see
0:19 that can be hard of working with web apps
0:21 in terms of testing.
0:22 For example, how do we like set up the web framework
0:26 around it if it depends upon things like request object.
0:29 And what are some of the techniques we can use
0:31 to take advantage of stuff the web app already provides us
0:35 like the URL structure and so on.
0:38 Let's begin by asking the question, why test?
0:41 Why should we write tests at all?
0:43 Well, your first response is probably
0:45 So that we can find our bugs.
0:47 There surely are bugs in our web app.
0:48 Let's make sure we find them and then get rid of them.
0:51 And that is great.
0:53 That's not the only reason to write tests.
0:55 These days in modern software development
0:57 we have a lot of infrastructure in place to help
1:00 with things like continuous deployment
1:02 and checking code and verifying that we don't step
1:05 on each others feet if we're working on a team.
1:07 Things like that.
1:08 And testing for Python web apps is really one
1:11 of the few verifications that we have that we can work with.
1:15 Let's suppose that we have continuous integration
1:17 which is a system like TeamCity or Travis CI
1:20 that looks at our GitHub repository.
1:22 Watches a branch or watches for PR's.
1:24 And when a change comes in
1:26 it will automatically check it out and build our project.
1:29 And that build probably includes running tests.
1:32 But if we don't have tests
1:33 that build passing, what does that mean?
1:35 I actually don't know what it means, in term of Python.
1:37 Maybe we could install the dependencies
1:39 register the website.
1:41 That might be about it.
1:42 Because Python doesn't even have compiling.
1:45 So this testing in place means
1:47 that when our automatic builds pass
1:49 that actually says something about the state of our web app.
1:53 If we're going to go farther, and go with continuous delivery
1:55 and automatically deploy our site
1:57 when we put it onto a branch in the build passes
2:00 when we really need some sort of verification
2:01 with our tests.
2:02 So these tests are important foundational items
2:05 for so many things that we might do
2:07 around our project.