如何在junit中测试行锁定异常

Dea*_*mer 4 java junit

在junit中有没有办法测试rowlocked异常?

Noe*_*l M 6

如果模拟数据库依赖项,则可以让模拟对象抛出锁定行异常.

由于您已经删除了对数据库的直接依赖性,测试应该运行得更快,并且由于数据库问题(例如数据库不可用或类似问题),您不太容易发生"闪烁测试".

此外,这样,您只是测试您的代码,而不是与数据库无关 - 它与实现无关.如果您将来选择更改数据库供应商,则(a)对您的代码无关紧要; (b)您的测试不关心它使用的数据库.

一些示例模拟框架可以帮助您入门:


Geo*_*uba 5

像这样的东西:

@Test(expected=SQLException.class)
public void testReadLockedRowException() {
    ...
}
Run Code Online (Sandbox Code Playgroud)