Java 单元测试Oracle视图

Java 单元测试Oracle视图,java,sql,oracle,unit-testing,automated-tests,Java,Sql,Oracle,Unit Testing,Automated Tests,我搜索了测试oracle db视图的最佳实践、工具和库,但没有找到多少。有些SQL编辑器有自己的内置方式,有些是SQL Server库,有些是PL/SQL库,这似乎是最接近的东西,但我不确定它是否适合我的需要 问题陈述:我们有大量的业务逻辑编写为SQL视图。随着时间的推移,这已经变得非常难以维持,微小的变化可能会导致令人惊讶的倒退。(出于所有通常的原因) 我想要一个与标准java构建管道集成的东西,这样当我们部署对db对象的任何更改(我们目前使用liquibase)时,我们就可以运行一个完整的测

我搜索了测试oracle db视图的最佳实践、工具和库,但没有找到多少。有些SQL编辑器有自己的内置方式,有些是SQL Server库,有些是PL/SQL库,这似乎是最接近的东西,但我不确定它是否适合我的需要

问题陈述:我们有大量的业务逻辑编写为SQL视图。随着时间的推移,这已经变得非常难以维持,微小的变化可能会导致令人惊讶的倒退。(出于所有通常的原因)

我想要一个与标准java构建管道集成的东西,这样当我们部署对db对象的任何更改(我们目前使用liquibase)时,我们就可以运行一个完整的测试套件并降低回归的风险

如果java解决方案不可行,那么SQL或PL/SQL解决方案也可以

我能想到的第一个天真的方法是

  • 使用测试数据创建一些测试表
  • 通过将源表替换为测试表,模拟需要测试的视图
  • 从视图中运行“选择*”,并将其与所需输出进行比较
  • 删除测试表和模拟视图
  • 是否有任何现有的工具/库可以执行上述操作? 如果没有,是否有任何特殊原因说明上述方法不起作用


    谢谢

    首先测试查询。然后创建视图。如何以编程方式测试查询以检查回归?如何处理现有视图?您设置了一个具有受控数据的开发环境,并在其中定义了视图。然后可以应用回归测试。我还将指出,在SQL中,这比在其他语言中更复杂,因为它依赖于数据。如果我们试图设置它,那么测试数据表和源代码视图之间就会出现名称冲突。我可以看到这样的开发环境是如何在小规模上工作的,但在我们的例子中却没有。它们还通过数据库链接查询视图/表。然后创建视图。如何以编程方式测试查询以检查回归?如何处理现有视图?您设置了一个具有受控数据的开发环境,并在其中定义了视图。然后可以应用回归测试。我还将指出,在SQL中,这比在其他语言中更复杂,因为它依赖于数据。如果我们试图设置它,那么测试数据表和源代码视图之间就会出现名称冲突。我可以看到这样的开发环境是如何在小规模上工作的,但在我们的例子中却没有。它们还通过数据库链接查询视图/表。