我们目前正在开发一款大量使用PostgreSQL的应用程序。在大多数情况下,我们使用SQLAlchemy来访问数据库,这非常有效。对于测试,相关对象可以模拟或在没有数据库访问的情况下使用。但是,系统中有一些运行非标准查询的部分。这些子系统必须创建临时表并插入大量行,然后将数据合并回主表。
目前,这些子系统中有一些SQL语句,但这会使相关类与数据库紧密耦合,从而使单元测试变得更加困难。
基本上我的问题是,是否有任何设计模式来解决这个问题?我能想到的唯一方法是将这些SQL语句放入一个单独的类中,并将一个实例传递给其他类。这样,我就可以为单元测试模拟查询类,但它仍然感觉有点笨拙。有更好的方法吗?
目前,这些子系统中有一些SQL语句,但这会使相关类与数据库紧密耦合,从而使单元测试变得更加困难。
基本上我的问题是,是否有任何设计模式来解决这个问题?我能想到的唯一方法是将这些SQL语句放入一个单独的类中,并将一个实例传递给其他类。这样,我就可以为单元测试模拟查询类,但它仍然感觉有点笨拙。有更好的方法吗?