SQL Developer支持DML的单元测试,但是我还没有找到为DDL创建单元测试的方法。什么是解决这个问题的好方法?我从头开始的模式很少,只有不到十几张桌子上有更大的项目。谷歌没有多少回应单元测试应用于DDL。任何关于测试DDL或其他单元测试DDL工具的方法的想法?使用SQL Developer 3.1进行单元测试DDL
回答
你想测试DDL的什么?表格是按照定义创建的,或者不是。
你可以做的是编写一系列测试,查询数据字典以确保表存在,具有所需大小和数据类型的列等。这将是比单元测试更多的模式验证脚本不过,我不确定它会有多宝贵。
如果你保持一个架构构建脚本(或一系列迁移到新对象添加到对象添加到您的架构),那么它是否适用不知道,因为它定义的架构已产生的误差。
然后,如果你有存储过程,他们中的一些将无法编译,如果模式是不是100%正确。清楚地获得程序将是架构的另一个验证步骤。
最后,你写单元测试来测试DML和存储过程将验证正确的数据进入正确的表格。
您可能需要一些测试,以确保一个表只能接受特定的值或列可以是唯一的等(即测试限制是正确的),但将下降到标准单元测试过。
我在写单元测试DB代码非常相信,但我不喜欢做它的SQL开发GUI方法。现在我正在为应用程序编写测试,但是我正在使用Ruby编写测试代码,并且它似乎运行良好。它也将被轻松构建到我们的构建和自动化测试过程中。
另一种选择是我以前使用过的UT_PLSQL,但是由于PLSQL的本质使得测试非常冗长,这就是为什么我决定使用Ruby来处理当前项目的原因。
我知道这是一个老问题,但我最近一直在努力解决同样的问题。我认为在创建对象之前为DDL定义测试,然后创建那些通过这些测试的对象是很有用的。
我用assert“模式” - 即tdd.ddlunit.assert_tableexists(p_schema_name,p_table_name)完成了一些操作,如果表不存在,就会以静默方式运行。
我创建其他断言是对于像确保所有VARCHAR2列使用字符语义,而不是字节长度语义,并确保所有的表和列注释。
这些被签入代码存储库,可以通过持续集成框架运行,以确保我们拥有一个有效的数据库,符合我们的预期。
- 1. 使用Cocoapods进行Xcode单元测试
- 2. 使用Mockito进行单元测试
- 3. 使用JMS进行单元测试(ActiveMQ)
- 4. 使用V8进行Javascript单元测试
- 5. 使用Clojure进行单元测试Java
- 6. 使用NSURLConnection进行单元测试
- 7. 使用moment.js进行单元测试
- 8. 使用IMongoQueryable进行单元测试
- 9. 使用Singleton进行单元测试
- 10. 使用DI进行单元测试
- 11. 使用Automake进行单元测试
- 12. SpringBoot:使用Cassandra进行单元测试
- 13. 使用ServiceLocator进行单元测试
- 14. 使用mockresourcerequest进行单元测试
- 15. 使用DateTime进行单元测试
- 16. 使用jdeveloper进行单元测试10g
- 17. 使用SimpleHTTPServer进行单元测试
- 18. 使用QT进行单元测试
- 19. 使用ContentProviders进行Android单元测试
- 20. 使用Mockito进行GWTP单元测试
- 21. 使用Application.Current.Dispatcher进行单元测试
- 22. 使用Cookie进行MVC单元测试
- 23. 使用Linq to Sql进行MVC单元测试
- 24. 使用Simpletest进行单元测试CodeIgniter - 很少有测试
- 25. 使用Specflow场景进行集成测试和单元测试
- 26. 何时使用测试脚本进行单元测试?
- 27. 使用单元测试进行线程安全测试
- 28. 在使用Rspec进行单元测试时测试“accep_nested_attributes_for”
- 29. 使用Visual Studio测试框架进行C++单元测试
- 30. 如何使用System.Windows.Threading.Dispatcher对单元进行单元测试
外键和约束例如可能涉及大量的逻辑,应该可能得到单元测试,不是吗? – 2016-04-19 20:14:16