我正在端到端测试REST API,当我想检查应用程序的行为时。 一种是尽可能使用现有的REST API,但在其他情况下我没有可用的REST API,因此有两种选择: 为测试目的创建api或在数据库中检查数据是否按预期更改。
哪一个更好,为什么?从测试中进行db调用有什么害处吗?
答案 0 :(得分:2)
由于您要测试API本身(端到端测试),因此我可能会选择创建测试数据库并进行处理的方法。如果您是手动执行此操作,则尽管很麻烦,但每次测试后都可以轻松重置数据库。
您也可以并且我可能会走这条路,创建一个具有随时可用数据库的Docker容器,您可以根据需要对该数据库进行更新,并随时间跨度开发API本身。您可以在每次需要执行测试时生成一个新的容器/数据库,这也将简化CI / CD管道中的自动化和集成。
使用这些解决方案中的任何一个,您都可以在真实的数据库中测试真实的API。提供更准确的测试结果。
希望这会有所帮助! 干杯!
答案 1 :(得分:0)
在e2e测试或验收测试中,通常只检查可观察到的行为,因此对于API用户,用户可以看到该行为,因此从理论上讲,您无需检查数据库。 / p>
如果您真的想检查数据库中的结果,我将使用xmysql https://github.com/o1lab/xmysql之类的项目来使用Rest API,该API可用于检查数据库。原因是: