Genereer Python Unit Tests voor je Code
description
Deze prompt helpt gebruikers bij het automatisch genereren van effectieve unit tests voor hun Python code, wat zorgt voor betere softwarekwaliteit, vroege bugdetectie en onderhoudbaarheid. Het onderscheidt zich van debugging of automatiseringsscripts door zich specifiek te richten op testen, wat cruciaal is voor betrouwbare codebases.
prompt
Help me met het maken van Python unit tests voor de volgende code om de functionaliteit te waarbo ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorbeeld van Python-unit tests voor de functie `optel(a, b)` om de functionaliteit te waarbogen en randgevallen te behandelen:
```python
import unittest
# De te testen functie
def optel(a, b):
return a + b
class TestOptelFunction(unittest.TestCase):
def test_positive_integers(self):
self.assertEqual(optel(2, 3), 5)
def test_negative_integers(self):
self.assertEqual(optel(-2, -3), -5)
def test_mengsel_positive_en_negative(self):
self.assertEqual(optel(5, -3), 2)
def test_zero_bij_positieve_getallen(self):
self.assertEqual(optel(0, 5), 5)
def test_zero_bij_negatieve_getallen(self):
self.assertEqual(optel(0, -5), -5)
def test_beide_zero(self):
self.assertEqual(optel(0, 0), 0)
def test_floats(self):
self.assertAlmostEqual(optel(2.5, 3.1), 5.6)
def test_combinatie_float_en_int(self):
self.assertEqual(optel(2, 3.5), 5.5)
def test_string_input_verkeerd(self):
with self.assertRaises(TypeError):
optel("a", 1)
with self.assertRaises(TypeError):
optel(1, "b")
if __name__ == '__main__':
unittest.main()
```
Deze tests controleren verschillende scenario's:
- Positieve en negatieve gehele getallen
- Mengsels van positieve en negatieve getallen
- Getallen met nul
- Komma-getallen (floats)
- Foutafhandeling bij onjuiste input (zoals strings)
Wil je nog specifieke randgevallen of extra functionaliteit testen?
provider: deepseek
model: deepseek-chat
Hier is een voorbeeld van unit tests voor jouw `optel` functie met behulp van unittest:
```python
import unittest
def optel(a, b):
return a + b
class TestOptelFunctie(unittest.TestCase):
def test_optel_positieve_getallen(self):
self.assertEqual(optel(3, 5), 8)
self.assertEqual(optel(10, 15), 25)
def test_optel_negatieve_getallen(self):
self.assertEqual(optel(-3, -5), -8)
self.assertEqual(optel(-10, 5), -5)
def test_optel_nul(self):
self.assertEqual(optel(0, 5), 5)
self.assertEqual(optel(7, 0), 7)
self.assertEqual(optel(0, 0), 0)
def test_optel_decimale_getallen(self):
self.assertAlmostEqual(optel(3.5, 2.1), 5.6)
self.assertAlmostEqual(optel(-2.3, 1.7), -0.6)
def test_optel_grote_getallen(self):
self.assertEqual(optel(1000000, 2000000), 3000000)
def test_optel_strings_concatenatie(self):
self.assertEqual(optel("Hallo", " Wereld"), "Hallo Wereld")
self.assertEqual(optel("Python", "3"), "Python3")
def test_optel_lijsten(self):
self.assertEqual(optel([1, 2], [3, 4]), [1, 2, 3, 4])
def test_optel_ongeldige_combinaties(self):
# Deze test zal falen omdat je niet een string met een int kunt optellen
with self.assertRaises(TypeError):
optel("5", 3)
with self.assertRaises(TypeError):
optel([1, 2], 3)
if __name__ == '__main__':
unittest.main()
```
**Belangrijke punten over deze tests:**
1. **Positieve getallen**: Test normale gebruiksscenario's
2. **Negatieve getallen**: Test randgevallen met negatieve waarden
3. **Nulwaarden**: Test grenswaarden
4. **Decimale getallen**: Test floating-point berekeningen
5. **Grote getallen**: Test prestaties en overflow (hoewel Python hier automatisch mee omgaat)
6. **Strings**: Test concatenatie gedrag
7. **Lijsten**: Test list concatenatie
8. **Type errors**: Test ongeldige type combinaties
**Om de tests uit te voeren:**
```bash
python -m unittest test_bestandsnaam.py
```
**Aanbevolen verbeteringen voor je functie:**
Je zou type checking kunnen toevoegen als je specifiek gedrag wilt afdwingen:
```python
def optel(a, b):
if type(a) != type(b):
raise TypeError("Kan alleen gelijke types optellen")
return a + b
```