Created
August 27, 2015 19:40
-
-
Save mcdonc/318d283890cb52e00654 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- day 1 -- | |
The Cynical Introduction | |
All Code Is Terrible | |
Avoid Shame, Test Everything | |
Proving It Works Isn't The Goal | |
But It Makes Me So Slow!? | |
Don't Be Afraid to Throw It Away | |
Testing Tenets | |
Goals | |
Rules | |
Guidelines | |
Conclusion | |
Types of Tests | |
Unit | |
Integration | |
Functional | |
Unit Test Jargon | |
Stub | |
Fixture | |
Mock | |
Requirements | |
Install Python 2.7 | |
Install setuptools | |
Create a Virtual Environment | |
Phases of Test Execution | |
Discovery | |
Running | |
Reporting | |
The Python ``unittest`` Module (hands-on) | |
Modes of Discovery | |
Modes of Running | |
Interpreting Output | |
Examples of running a single test (unittest only) | |
The Typical Testing Workflow | |
Starting Out From Nothing | |
Thereafter | |
Running A Single Test | |
Checking In Broken Tests | |
Running All The Tests Regularly | |
Antipatterns in Workflow | |
Not Running Tests | |
Ignoring Broken Tests | |
Not Automating Test Execution | |
Antipatterns When Writing Tests | |
Bad Fixtures | |
Bad/Missing Stubs | |
Bad/Missing Mocks | |
Misuse of Globals | |
Making Code Easier to Test | |
Avoid Global State When Possible | |
Avoid Designing for Convenience (Don't Give In To ``import`` Fascination) | |
Composition Usually Beats Inheritance | |
Avoid Using Others' Code That Breaks These Rules | |
-- end of day 1 --- | |
-- day 2 -- | |
Introducing Useful Testing Tools | |
unittest2 | |
doctest | |
nose | |
py.test | |
tox | |
mock | |
sphinx testing integration | |
selenium | |
git bisect | |
Common Test Problems and Their Solutions | |
SQLAlchemy databases | |
Mongo databases | |
Flask globals | |
Pyramid configuration | |
-- end of day 2 -- | |
-- day 3 -- | |
Continuous Integration | |
GitHub | |
Travis | |
Jenkins | |
Workshop (second half of day) | |
Bring Your Own Code! | |
-- end of day 3 -- | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment