问题标签 [python-hypothesis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1212 浏览

python - 如何编写一个策略来生成带有 python 假设的元组列表?

我开始使用假设来编写测试。我喜欢它,但我坚持生成某种数据。

我有一个使用数据列表的测试,可以从元组(键,值)构造。

键可以是文本、整数或浮点数,值可以是任何可比较的值。对于一个测试,所有键必须是同一类型,所有值必须是同一类型。

我发现生成我想要的数据的唯一方法是这样的:

有没有更好的方法来生成我想要测试的所有数据类型组合?

0 投票
1 回答
164 浏览

python - 如何在假设中传递不同的 DataType 值以及如何在 Python 中检查返回类型和值是否正确

使用 Hypothesis 模块在 Python 中进行单元测试的示例代码。编写了简单的getTimeDelta函数来获取两个日期之间的时间差。

想写getTimeDelta函数的单元测试。使用假设模块来获得多个datetime值。

问题是: 1. 如何传递不同的数据类型值,即time1str 和time2isdatetime而无需编写多个函数?

  1. 仅检查返回值的数据类型,而不是实际结果是否正确。怎么做?

  2. 如何检查项目的数据类型,结果元组?assertIsInstance

代码:

编辑 01

我们可以通过hypothesis.strategies.one_of(*args),链接修复 #Question1

0 投票
1 回答
660 浏览

python - 使用faker的python假设单元测试

通过使用假设附加包Faker,我遇到了 python 单元测试的问题。我想测试我网站的登录过程,我已经有了单元测试场景,但我想用假设自动化场景。这是我用于电子邮件和密码验证的简单代码。

我总是发现这个错误。有什么我错过的吗?

我将代码更改为此。

这是警告。但伪装者有效。这会是个问题吗?

0 投票
1 回答
101 浏览

python-hypothesis - 在测试运行之间定义步长的假设整数策略?

我正在编写一个自定义搜索策略builds()(这对这个问题无关紧要),它将使用假设.strategies.integers(min_value=None, max_value=None)来生成具有显式步长的整数数据,而不是比方说 delta 10. 我不需要像[10, 20, 30, 40, etc.]. 相反,我需要使用步长为 的整数值调用测试函数的后续调用10,例如10第一次调用、20第二次调用等。我怎样才能最简单地实现这一点?

0 投票
1 回答
173 浏览

python-hypothesis - 基于假设的策略的示例测试用例?

什么被认为是当前测试基于假设的策略的最佳实践?有一些关于好的例子如何缩小HypothesisWorks/hypothesis-python/tests/quality/test_shrink_quality.py 的测试。但是,到目前为止,我找不到测试策略的数据生成功能(通常是性能等)的示例。

0 投票
2 回答
1945 浏览

python - 如何创建使用 `builds()` 的可配置自定义假设策略?

builds()我使用and创建了自定义假设策略@composite(设计灵感来自文档中的这个示例)。这些策略的设计类似于下面的伪代码:

该策略照常使用,例如unittest用作测试运行器:

现在我想让策略可配置到实际应用程序中,例如min_valueintegers(min_value=APP_SPECIFIC_INT_MIN, ...)定义测试功能时定义。这可以通过像done here@composite这样的agruments 来为策略完成。但是我怎样才能使使用可配置的策略呢?builds()

0 投票
2 回答
743 浏览

python - 使用 Hypothesis Python 生成条件数据

我想生成具有以下条件的大小为 2 的整数列表的列表。

  • 第一个元素应该小于第二个元素并且
  • 所有数据都应该是唯一的。

我可以使用自定义函数生成每个元组,但不知道如何使用它来满足第二个条件。

我可以通过以这种(低效?)方式迭代generate_date几次来生成数据:

但是如何检查数据是否唯一?

例如,以下值无效:

但以下是有效的:

0 投票
1 回答
73 浏览

python-hypothesis - 假设搜索树

我有一个包含许多字段的对象。每个字段都有不同的值范围。我想使用假设来生成这个对象的不同实例。

假设可以处理的字段值组合的数量是否有限制?或者搜索树假设创建的是什么样的?我不需要所有组合,但我想确保获得相当数量的组合,在这些组合中我为每个字段测试许多不同的值。我想确保假设在达到要生成的最大示例数之前不会进行 DFS

0 投票
1 回答
136 浏览

python-hypothesis - 将示例用于返回类实例的策略

我有

我如何确保一个测试用例

和一个测试用例

生成?

我知道@example。这是正确的吗?

0 投票
1 回答
165 浏览

python-hypothesis - 拥有在不同策略之间不统一选择的策略

我想创建一个策略 C,90% 的时间选择策略 A,10% 的时间选择策略 B。

随机 python 库即使我播种它也不起作用,因为每次策略产生值时,它都会从随机生成相同的值。

我查看了 OneOfStrategy 的实现,他们使用 i = cu.integer_range(data, 0, n - 1) 随机生成一个数字

cu 来自内部 importhypothesis.internal.conjecture.utils as cu

我的策略可以使用 cu.integer_range 还是有其他实现?