Pattern – expected failures
Sometimes, we have tests that are failing, but, for whatever reason, we don't want to fix it yet. It could be that we found a bug and wrote a failing test that demonstrates the bug (a very good practice), but we have decided to fix the bug later. Now, the whole test suite is failing.
On one hand, we don't want the suite to fail because we know this bug and want to fix it later. On the other hand, we don't want to remove the test from the suite because it reminds us that we need to fix the bug. What do we do?
Python's unittest
module provides a solution: marking tests as expected failures. We can do this by applying the unittest.expectedFailure
decorator to the test. The following is an example of it in action:
class AlertTest(unittest.TestCase): @unittest.expectedFailure def test_action_is_executed_when_rule_matches(self): goog = mock.MagicMock(spec=Stock) goog.updated = Event() goog.update.side_effect = \ lambda date,...