Skip to content

Commit 9fbe2e3

Browse files
authored
Merge pull request #798 from InessaPawson/test-example
docs: parametrize add_numbers test example to match readability guidance
2 parents 24c6cbd + 08ed342 commit 9fbe2e3

1 file changed

Lines changed: 21 additions & 12 deletions

File tree

‎tests/write-tests.md‎

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -82,21 +82,30 @@ def add_numbers(a: float, b: float) -> float:
8282
```
8383
8484
A test to ensure that function runs as you might expect when provided with
85-
different numbers might look like this:
85+
different numbers might look like this. Each set of inputs gets its own
86+
readable ID, so a failing case is easy to spot in the pytest output
87+
(for example, `test_add_numbers_returns_sum[negative]`):
8688
8789
```python
88-
def test_add_numbers():
89-
result = add_numbers(2, 3)
90-
assert result == 5, f"Expected 5, but got {result}"
91-
92-
result2 = add_numbers(-1, 4)
93-
assert result2 == 3, f"Expected 3, but got {result2}"
94-
95-
result3 = add_numbers(0, 0)
96-
assert result3 == 0, f"Expected 0, but got {result3}"
97-
98-
test_add_numbers()
90+
import pytest
91+
92+
93+
@pytest.mark.parametrize(
94+
"first_number, second_number, expected_sum",
95+
[
96+
(2, 3, 5),
97+
(-1, 4, 3),
98+
(0, 0, 0),
99+
],
100+
ids=["positive", "negative", "zero"],
101+
)
102+
def test_add_numbers_returns_sum(first_number, second_number, expected_sum):
103+
"""Test that add_numbers returns the sum of two numbers."""
104+
actual_sum = add_numbers(first_number, second_number)
99105
106+
assert actual_sum == expected_sum, (
107+
f"Expected {expected_sum}, but got {actual_sum}"
108+
)
100109
```
101110
````
102111

0 commit comments

Comments
 (0)