java - 如何使用junit测试来测试连接
问题描述
// 尝试为此编写一个 junit 测试。这可能真的很明显,但我想不出一种方法来实现它。
public void connectToDB() {
conn = new QBasicConnection(host, port, user, password);
try {
conn.open();
} catch (IOException e) {
throw new IllegalStateException("", e);
} catch (QException e) {
throw new IllegalStateException("", e);
}
}
解决方案
我建议你先阅读这篇文章: 什么是单元测试,你是怎么做的?
在您的测试用例中,您不想打开与数据库的真实连接。这不是您的程序的一部分,而是您用来访问数据库功能的框架的一部分。
避免这种情况的一个好方法是使用模拟。 什么是嘲笑?给你一个关于模拟的很好的概述,以及为什么你应该使用它们而不是依赖于数据库连接的整个依赖。
实际上,您可以编写的唯一测试将检查您的异常处理。在测试中,您将检查引发的异常conn.open()
是否得到正确处理。
推荐阅读
- javascript - Vuex 状态在加载 vue 组件之前没有更新?
- java - 在 JPA nativeQuery 中计数和分组
- laravel - 如何在 Laravel 中使用具有多重身份验证的验证电子邮件?
- keras - 如何在 keras 中微调加载的模型?
- python - Scipy Optimize ValueError:解包的变量太多
- reactjs - 更改悬停的图表旁边所有图表的背景颜色
- laravel - Laravel 依赖注入在服务中不起作用
- angular - 为什么显示行,但我的材料表中没有显示数据?
- spring - 在 Spring Jpa 页面结果中隐藏属性
- react-native - 按 RN 应用程序上的后退箭头不会将连接的组件刷新到 Redux 商店