self.assertTrue
Testing Patterns

Meaning

Asserts that the given expression evaluates to a truthy value in a unittest test method. Addresses the need to verify that a specific condition or invariant holds after exercising code under test. Reached for whenever a boolean or truthiness check is the most natural way to express a test expectation.

Primary Function

Assertion

Communicative Purpose

Verifies that a condition evaluates to True, failing the test if it does not.

Pattern

self.assertTrue(condition)

Core Structure

self.assertTrue(condition)

Função primária

Assertion

Propósito comunicativo

Verifies that a condition evaluates to True, failing the test if it does not.

Situações de gatilho

Unit testing: verifying a function returns a truthy value; Unit testing: checking that a flag or state variable indicates success; Unit testing: confirming a collection is non-empty or an object is not None.

Contextos

Python unittest.TestCase subclasses, pytest-based test suites using unittest compatibility, Django test cases.

Padrão

self.assertTrue(condition)

Estrutura central

self.assertTrue(condition)

Slots de substituição

condition: any expression that evaluates to a boolean or truthy value.

Colocados típicos

  • self assertTrue True False assertFalse assertEqual assertIsNotNone

Substituições comuns

  • assertFalse(condition) assertTrue(not condition) assertTrue(len(seq) > 0) assertTrue(isinstance(obj
  • cls))

Erros comuns

Using plain assert instead of self.assertTrue — plain assert can be silently disabled with -O flag, causing tests to pass when they should fail. Passing a non-boolean without intent — relies on Python truthiness and can mask logic errors where assertEqual or assertIs would be clearer. Confusing assertTrue with assertEqual — assertTrue(1 == 2) gives a useless failure message, while assertEqual(1, 2) shows both values. Omitting self. prefix — causes NameError because assertTrue is a method on the TestCase instance.

Similar / contraste

assertFalse: asserts the condition is False assertEqual: asserts two values are equal assertIs: asserts object identity assertGreater: asserts a numeric comparison

Interferências

Coming from JavaScript/Jest: may write assertTrue(condition) as a bare function call — Python requires self.assertTrue() inside a TestCase method. Coming from pytest: may write assert condition instead of self.assertTrue(condition) — pytest rewrites bare asserts for better messages, but unittest requires the method call.

Família do chunk

  • unittest_assertions

Nuance

Do not use assertTrue when a more specific assertion (assertEqual, assertIsNotNone, assertIn) communicates intent better and provides clearer failure messages. No measurable performance impact; assertion overhead is negligible compared to the code under test. Non-obvious: assertTrue(None) and assertTrue(0) fail, while assertTrue([]) and assertTrue('') also fail — any falsy value triggers failure, not just False.

Efeito pragmático

Signals the test author’s expectation that the condition should hold; a failure indicates a defect in the code under test.

Dica de memória

Think ‘assert true’ when you need to verify a condition holds.

Nota

Part of the unittest.TestCase assertion API; provides a clear failure message showing the offending value.

Upgrade path

Consider using assertTrue with a custom message for clearer failure reports, or replace with more specific assertions like assertGreater or assertIsInstance when appropriate.

Frequência: Very highFormulaicidade: Semi-fixedTipo de construção: method callPrioridade de aquisição: Automatic productionPrioridade de output: OutputTag de espaçamento: Immediate

Log in to save chunks.