首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何基于后端模型的模式创建前端测试数据?

如何基于后端模型的模式创建前端测试数据?
EN

Software Engineering用户
提问于 2017-09-25 17:58:14
回答 1查看 482关注 0票数 3

由于后端和前端之间数据模式的耦合,我真的很难为我的前端创建健壮的测试。

为了澄清,我有一个Django rest,还有一个前端可以查询我的Django API后端模型的序列化形式。当我想为后端生成测试数据时,我使用工厂(factory_boy库)轻松地创建可以测试的模型实例。

在我的前端,传递的数据被假定具有与后端模型相同的结构。每当我改变我的后端模型,我必须改变我的前端以适应新的结构。那么,如果更改后端模型意味着我必须重写所有测试数据,那么如何创建健壮的前端测试数据呢?

我应该复制后端的工厂模式吗?是否有最佳做法来避免不得不维护两个工厂副本?

我已经考虑过一种可能的解决方案,但这可能需要大量额外的工作,除非已经有了这样一个库:在后端创建返回来自模型工厂的输出的端点,并且可以接受json数据来覆盖工厂的默认值。然后,我的前端可以调用这些来生成测试设置期间的测试数据。

EN

回答 1

Software Engineering用户

发布于 2017-09-26 04:40:18

您可以编写一个分析架构的测试数据生成包,并为每个有效的数据结构生成一组基于该数据中类型的允许值的测试数据集,以及基于一组规则的无效值。

典型的规则将包括:

  • 范围限制整数:测试at:
    • 距离最小,
    • 最大射程,
    • 0如果在范围内,但还没有达到,
    • 范围内的几个随机值
    • 另外(如果可能的话),
    • 射程为民-1,
    • 范围最大+1,
    • min型可表示&
    • 输入max可表示。

  • 字符串
    • 预期字符串的选择
    • 零长度字符串"“
    • 所有空字符串
    • 最大长度
    • 最大长度+1
    • 所有有效字符
    • 一些无效或意外的字符

  • Enum还是选择
    • 每一个有效值
    • 最后值+1
    • 最大可存储值(取决于存储类型,这可能是0 0xffff或0x7fff)
    • 如果签署了枚举,则-1和最大NEG

当然,以前最喜欢的方法也是使用前几次有效数据结构的迭代进行有意测试,以确保代码处理不同步的结果,即如果后端被恢复或前端连接到过时安装时会发生什么情况。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/358030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档