Python pytest/django:多个装置、多个断言、断言期望

Python pytest/django:多个装置、多个断言、断言期望,python,django,pytest,pytest-django,Python,Django,Pytest,Pytest Django,我有一个django项目的有效测试,dummy_book和test_profile都是固定的。请注意,它有两个断言: def test\u correct\u feed中的项目(客户端、虚拟书、测试配置文件): some\u author=dummy\u book.author\u set.first() #个人资料订阅作者 订阅。尝试按id添加(测试配置文件,某些作者。供应商id) client.login(username=test\u profile.user.username,passw

我有一个django项目的有效测试,
dummy_book
test_profile
都是固定的。请注意,它有两个断言:

def test\u correct\u feed中的项目(客户端、虚拟书、测试配置文件):
some\u author=dummy\u book.author\u set.first()
#个人资料订阅作者
订阅。尝试按id添加(测试配置文件,某些作者。供应商id)
client.login(username=test\u profile.user.username,password=“somepassword”)
test_profile.save()
#想要小说,请订阅
请求的\u url=reverse(“个人\u提要”,args=[test\u profile.auth\u令牌])
resp=client.get(请求的url,follow=True)
在str中断言虚拟图书标题(分别为内容)
#用户不再需要小说,请求订阅源
test\u profile.notify\u fraction=False
test_profile.save()
resp=client.get(f“/users/feeds/{test_profile.auth_token}”,follow=True)
断言虚拟书籍标题不在str中(分别为内容)
我现在希望实现的是一种测试两种不同的
test\u profile
s的方法:

  • 一个
    test\u premium\u profile
    ,允许按类型筛选
    Book
    s(注意模型属性
    test\u profile.notify\u fraction

  • 另一个
    test\u free\u profile
    ,不允许按类型筛选
    Book
    s

  • 我已经有了上面的逻辑,它只是忽略了
    test\u free\u profile
    关于这个属性的首选项

    这里的挑战来自这样一个事实:对于这两个不同的概要文件,我们需要断言不同的断言。具体而言,对于
    免费测试配置文件
    虚拟书。在两种场景中,标题
    应分别位于
    内容
    中,而对于
    免费测试配置文件
    而言,标题只应位于第一种场景中

    我如何为这两种
    概要文件
    安排这些不同的断言,而不复制此测试及其代码


    我知道一个更简单的解决办法是将这个测试一分为二,但我对此不感兴趣,而且为了教育起见,这是不可能的。

    仔细看看测试参数化:@4140tm我已经有了,这个问题是在复习完之后写的。当我使用pytest时,我也在想同样的事情,假设我有一个
    加法
    函数,如何通过fixture指定预期结果?通过参数化?没有关于标准方法的文档。仔细看看测试参数化:@4140tm我已经有了,这个问题是在讨论过之后写的。当我使用pytest时,我也在想同样的事情,假设我有一个
    加法
    函数,我如何通过fixture指定预期的结果?通过参数化?没有关于什么样的规范化方法的文档。