Page 1 of 1

Hypothese: Defensive Programmierung testen

Posted: 06 Jan 2025, 05:01
by Anonymous
Ich schreibe Tests mit Hypothesis, um Funktionen mit eingeschränktem Bereich zu testen. Betrachten Sie das folgende Spielzeugbeispiel:

Code: Select all

import math
from hypothesis import assume, example, given

def inc(value: float) -> float:
assert not math.isnan(value)
return value + 1

@given(st.floats())
def test_inc(value: float):
assume(not math.isnan(value))
if(value == math.inf or value == -math.inf):
assert inc(value) == value
else:
assert inc(value) > value
Hier teste ich das Verhalten für endliche und unendliche Eingaben, aber nicht für NaN. Ich möchte testen, ob Werte außerhalb des Bereichs, wie z. B. NaN, korrekt einen AssertionError auslösen.
Gibt es in Hypothesis ein integriertes Muster, mit dem ich dies testen kann? Idealerweise würde ich einen Ansatz bevorzugen, bei dem ich die Abdeckung von Werten innerhalb des Bereichs nicht gefährde.