【发布时间】:2009-05-27 14:54:23
【问题描述】:
我们的开发数据库 (Oracle 9i) 使用远程数据库链接到远程共享数据库。
这个决定是几年前做出的,当时将一些数据库模式放在开发机器上并不实际——它们太大了。
我们在开发机器上有某些模式,我们通过使用 Oracle 的数据库链接以及开发机器上的一些同义词使远程模式看起来是本地的。
我遇到的问题是我想测试一段 SQL,它在数据库链接的任一侧连接模式中的表。
例如(简化案例):
select a.col, b.col
from a, b
where a.b_id = b.id
- a 在本地数据库中
- b 在删除数据库中
- 我在语言环境数据库中有一个同义词,因此“b”实际上指向 b@remotedb。
由于链接的原因,在开发环境中运行查询需要很长时间。查询在生产环境中运行良好(我认为基于 Oracle 成本的优化器不能很好地处理数据库链接)。
过去,我们一直不太擅长为这些类型的查询编写单元测试 - 可能是由于性能不佳 - 所以我想开始为它们创建一些测试。
有没有人为这样的查询编写单元测试的策略,以避免使用数据库链接的性能问题?
我通常会寻找尝试模拟远程服务的方法,但由于所有这些都在 SQL 查询中,我无论如何都看不到轻松模拟删除数据库。
【问题讨论】:
标签: java sql oracle unit-testing mocking