我有一个Django模型。除此之外,它还有ForeignKey
到User
:
class MyModel(models.Model):
foo = models.BooleanField()
bar = models.ForeignKey(User)
我在测试中有一个方法,它可以生成一个适当形状的User
-generate_test_user()
我想用Hypothesis编写一些测试来断言有关模型实例的各种属性。你知道吗
我的第一个实现如下所示:
class MyTestCase(TestCase):
@hypothesis.given(models(MyModel, bar=just(generate_test_user())))
def test_my_model(self, mymodel):
pass
但是这失败了,因为generate_test_user
在导入时被调用,因此试图在Django迁移等运行之前创建一个模型。你知道吗
制定一个策略的好方法是什么,以便在正确的时间对正确的事情进行评估/延迟just
调用/类似的评估?你知道吗
听起来您需要draw the strategy interactively而不是在
@given()
中指定它:我要的是
builds
而不是just
从
hypothesis.strategies
:鉴于(为简洁起见编辑):
所以我原来
变成
所有的一切都如我所愿,每次测试运行时都会在正确的时间调用
generate_test_user
相关问题 更多 >
编程相关推荐