故事:
我目前正在使用hypothesis
和自定义生成策略对函数进行单元测试,试图找到一个特定的输入来“破坏”我当前的解决方案。这是我的测试的样子:
from solution import answer
# skipping mystrategy definition - not relevant
@given(mystrategy)
def test(l):
assert answer(l) in {0, 1, 2}
answer()
基本上,当函数不返回 0 或 1 或 2时,我正在寻找可能的输入。
这是我当前的工作流程的样子:
- 运行测试
hypothesis
找到一个产生 的输入AssertionError
:$ pytest test.py =========================================== test session starts ============================================ ... ------------------------------------------------ Hypothesis ------------------------------------------------ Falsifying example: test(l=[[0], [1]])
使用此特定输入调试函数,尝试了解此输入/输出是否合法并且该函数是否正常工作
问题:
我怎样才能跳过这个伪造的生成示例([[0], [1]]
在这种情况下)并要求hypothesis
生成一个不同的示例?
该问题也可以解释为:hypothesis
如果发现伪造示例,我可以要求不终止并生成更多伪造示例吗?