如何为此编写Junit?
当我调试它时,我englishFile
在行中得到了Null
englishFile = new FileInputStream(fileName);
String langCode = getLanguageCode();
String fileName = "appQuestion_"+langCode+".properties";
FileInputStream englishFile = null;
try {
englishFile = new FileInputStream(fileName);
engProperties.load(englishFile);
} catch (Exception e) {
} finally {
if (null != englishFile) {
englishFile.close();
}
}
Run Code Online (Sandbox Code Playgroud)
您至少有4个选择
使用powermock
丑陋,缓慢,在许多公司中都禁止使用,允许您编写不良代码,但功能强大
做整合测试
准备文件,环境变量,并检查没有此类文件时代码的行为。速度很慢,但可以让您在现实世界中测试该代码
重构代码以适合单元测试
移至new
其他类(工厂),移至.load
其他类(environmentProvider)并在测试中模拟那些类。您将获得快速测试,但必须更改设计。有些人认为它将强制执行良好的设计,有些人则认为测试不应对设计产生影响。
不要测试。
也许代码是如此之小,没有业务逻辑,不会经常更改,将由测试人员手动测试。因此,测试它可能会浪费金钱。那是简单但有风险的解决方案
我建议您在2,3,4的某种混合之间进行选择,具体取决于此代码的关键程度,更改的频率,更复杂的代码以及应用程序应该执行的操作。测试与外界的交互通常在设计(复杂性,可读性等),速度和风险之间进行权衡。
归档时间: |
|
查看次数: |
1361 次 |
最近记录: |