Useful Links
Computer Science
Cybersecurity
Python Testing
1. Fundamentals of Software Testing
2. Python Testing Environment Setup
3. The unittest Framework
4. The pytest Framework
5. Test Design and Best Practices
6. Mocking, Patching, and Test Doubles
7. Advanced Testing Techniques
8. Testing Specific Application Types
9. Test Automation and Continuous Integration
10. Code Coverage
11. Security-Oriented Testing
12. Test Data Management
13. Debugging and Troubleshooting Tests
14. Performance and Optimization
The unittest Framework
Core Concepts
The TestCase Class
Inheriting from TestCase
Organizing Test Methods
Test Method Naming Conventions
Test Fixtures
Purpose of Fixtures
setUp Method
Preparing Test Environments
Instance-Level Setup
tearDown Method
Cleaning Up After Tests
Resource Management
setUpClass Method
Class-Level Setup
Expensive Setup Operations
tearDownClass Method
Class-Level Teardown
Shared Resource Cleanup
Test Discovery
Naming Conventions
Discovering Tests Automatically
Using the unittest CLI
Custom Test Discovery
Writing Tests with unittest
Structuring a Test File
Importing Modules
Organizing Test Classes
Module-Level Setup
Creating Test Methods
Naming Test Methods
Writing Assertions
Test Method Structure
Running Tests from the Command Line
Using python -m unittest
Specifying Test Modules and Classes
Verbose Output Options
Assertion Methods
Equality and Inequality Assertions
assertEqual
assertNotEqual
Comparing Complex Data Structures
Custom Equality Comparisons
Boolean and Identity Assertions
assertTrue
assertFalse
assertIs
assertIsNot
assertIsNone
assertIsNotNone
Exception Assertions
assertRaises
Using Context Managers for Exceptions
Testing Exception Messages
Testing Exception Attributes
Container Assertions
assertIn
assertNotIn
assertListEqual
assertDictEqual
assertSetEqual
assertTupleEqual
Numeric Assertions
assertAlmostEqual
assertNotAlmostEqual
assertGreater
assertLess
String Assertions
assertRegex
assertNotRegex
assertMultiLineEqual
Skipping Tests and Expected Failures
Skipping Tests
@unittest.skip
@unittest.skipIf
@unittest.skipUnless
Conditional Skipping
Marking Expected Failures
@unittest.expectedFailure
Documenting Known Issues
Organizing Tests
Test Suites
Creating and Running Test Suites
Combining Multiple Test Cases
Custom Test Suite Creation
The TestLoader Class
Loading Tests Dynamically
Customizing Test Discovery
Loading from Modules and Classes
Advanced unittest Features
Subtests
Testing Multiple Values
Parameterized Testing
Test Result Objects
Custom Test Results
Test Reporting
Mock Integration
Using unittest.mock
Patching in unittest
Previous
2. Python Testing Environment Setup
Go to top
Next
4. The pytest Framework