Files
Jev Kuznetsov 846eca59d2 add knowledge
2026-04-23 12:06:00 +02:00

1.3 KiB

Testing

Verify behavior automatically so you can change code with confidence.

Tools by Language

Language Recommended Alternatives
Python pytest unittest, hypothesis
JavaScript/TS vitest jest, mocha
Go testing (stdlib) testify
C++ googletest catch2, doctest

Python — pytest

pytest                    # run all tests
pytest -x                 # stop on first failure
pytest -k "test_login"    # run matching tests
pytest --cov=src          # with coverage

Minimal test:

def add(a: int, b: int) -> int:
    return a + b

def test_add():
    assert add(2, 3) == 5

Configure in pyproject.toml:

[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-ra -q"

JavaScript — vitest

vitest run          # run once
vitest              # watch mode
vitest --coverage

Go

go test ./...           # run all tests
go test -race ./...     # with race detector
go test -cover ./...

Key Principles

  • Test behavior, not implementation — tests that break on refactors aren't useful
  • Fast tests get run; slow tests get skipped
  • Don't mock more than necessary — integration tests catch what unit tests miss
  • Add a test when you fix a bug; the bug was a missing test