我使用PyTest编写单元测试,我非常喜欢它 . 最近 - 对端到端/验收测试的需求已经出现,而且由于我对验收测试框架的经验不足,我决定做一些研究,如果有可能在PyTest中编写端到端测试 .

我不会在测试中得到关于系统的太多细节,但是应用程序做的是从客户接收3条消息(采用JSON格式),在它上面撒上一些业务层魔法,然后输出7条消息给客户 . 这里有几个关于结构和测试设计的问题:

  • setup 部分应该创建3条JSON消息,并将它们发送到测试系统 . 我不确定 fixtures 是处理它的正确方法,但对我来说固定装置是一种返回状态对象的方法 . 所以我认为我的 setup 在更大的范围内是同样的事情 . 所以我们说我有一个名为 setup (模块范围)的夹具,它可以执行测试工作所需的多个操作(创建3 JSON消息并调度它们) . 我的直觉告诉我每个测试文件/测试类不应该有多个 setup 夹具,但是,当你看到整个图片时,我当然更容易知道出了什么问题) . 因此,为了使单个测试正常工作,我将编写一个方法,将所有7条消息与预期结果进行比较,然后使用有关7条消息中的哪些消息以及原因的信息引发单个断言 . 因此,虽然在测试上下文中验证7条消息是正确的,但它可以测试单个事物并且很简单 .

  • setup 创建一个名为 random_test_entity 的实体(与许多其他实体一起) . 测试需要用于断言的信息 . 因此,设置夹具可以返回一个带有我稍后将在测试中需要的所有值的dict,或者 - 我可以创建另一个夹具,它返回一个dict,其值包含设置夹具和测试将消耗的值 . 这里的问题是我需要在我的灯具和测试之间共享数据和状态 . 而且由于我没有聪明的方法,我的夹具返回的数据并没有严格地连接到感觉奇怪的设置 . 返回值列表的夹具对我来说很奇怪,但也将设置夹具拆分成多个夹具,这样我才能共享数据 .

  • 我正在使用Ptest git仓库作为我的圣经,介绍如何编写单元测试 . 我从中学到了很多关于测试设计的知识 . 有没有我可以用来学习如何正确编写端到端测试的资源?

感谢大家!