使用其他数据库进行测试

时间:2016-04-05 18:46:25

标签: java testing junit mocking

我有一个使用oracle的程序。 我想对查询谁做完做一些测试。 Db测试是HSQLDB。

public class UserDAODataAccess {
    private Connection connection;

    private void getConnection() throws MMException {
        connection = AutoExternalServices.getDatabase().newConnection();
    }


    List<User> getUser(){
        getConnection();
        ...
    }
}   

在测试中是否可以绕过当前的getConnection并获得另一个db的连接?

1 个答案:

答案 0 :(得分:0)

在使用测试连接替换Connection AutoExternalServices时遇到困难时,应该响起警钟。通常这种困难来自于糟糕/次优的设计。

在您的情况下,如果可以,我建议您提供Connection作为构造函数参数并删除getConnection()方法。这样可以轻松地将Connection替换为您的测试。

至于绕过getConnection(),还有各种各样的黑客&#39;要做到这一点,包括切换系统属性,覆盖特殊测试类中的方法,......

但我不会推荐其中任何一个 ......