我有一个 DAO 层,我想用 JUnit 对其进行测试。测试覆盖率约为 85%,因此除了 SQLException 的 catch 子句外,几乎每一行代码都被覆盖了。我不知道如何为下面的代码片段引发 SQLException:
对我来说,唯一可以想到的解决方案是使用 java 反射将最终变量 SELECT_ALL_ATTR
的值重置为:SELLLLLECT * FROM ATTRIBUTES;
。我知道我可以通过使用 Mock 框架轻松地测试异常。但是我不想仅仅为了异常测试而引入 Mock 测试,因为其他一切都是用 JUnit 测试的。
除了java反射还有别的办法吗?
最佳答案
在您的案例中模拟 sql 异常并不容易,因为所有依赖项都是由 dao 本身启动的。也许您可以传递一个在某些方法中抛出 SqlException 的假连接?
关于java - 我如何使用 JUnit 在 DAO 层中激发 SQLExcetpion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17700300/