Junit测试JAVA文件,java – Junit测试模拟文件操作
我有一段类似于下面的代码,我被要求进行Junit测试.我们正在使用Junit,EasyMock和Spring Framework.我没有做过多少Junit测试,而且我对如何模拟下面的内容感到有点迷茫.
基本上,当我在我的机器上编写或运行测试时,文件的路径就像它所在的目录一样.我想知道有没有办法将对象模拟到临时位置,因为它实际运行的位置保证存在并在集成测试期间进行测试.
但是我想知道这样做是否明智,或者在目录实际存在时与项目的其余部分集成时应该进行测试.
任何帮助表示赞赏,因为Junit测试对我来说是全新的.我环顾四周但看不到怎样做我想要的东西(可能是一个很好的提示,我不应该这样做:P).
String fileName = pathToFileName;
File file = new File(fileName);
if (file.exists()) {
FileUtil.removeLineFromFile(file, getValueToRemove(serialNumber));
}
解决方法:
第一个选项是将文件注入到您的类中,您可以直接注入模拟.通常是更好的选择,但并不总是优雅或可行.
通过为诸如此类的有问题的对象创建受保护的包装函数,我已经从这些事情中获得了一些好处.在你的考试中:
protected File OpenFile(String fileName) { return new File(filename;}
在测试类中:
File file = EasyMock.createNiceMock(File.class);
private MyClass createMyClass() {
return new MyClass() {
@Override protected File OpenFile(String fileName) { return file; }
};
}
@Test public testFoo() {
EasyMock.expect(file.exists()).andStubReturn(true);
//...
MyClass myClass=createMyClass();
// ...
}
如果需要,可以在这种情况下保存构造参数(fileName)以进行验证.
标签:java,file-io,junit4,spring,easymock
来源: https://codeday.me/bug/20190630/1335279.html
Junit测试JAVA文件,java – Junit测试模拟文件操作相关推荐
- java定义计算机类并模拟其操作
java定义计算机类并模拟其操作 /*** 定义计算机类并模拟其操作*/ public class Computer {//成员变量private String cpu = "Intel&q ...
- 测试学习java_使用Junit测试框架学习Java
前言 在日常的开发中,离不开单元测试,而且在学习Java时,特别是在测试不同API使用时要不停的写main方法,显得很繁琐,所以这里介绍使用Junit学习Java的方法.此外,我使用log4j将结果输 ...
- java junit 覆盖率,使用Clover为JUnit测试做测试覆盖率分析
最近一直在看<JUnit in Action>一书,前几章看的还行,到第九章就出问题了,因为我的Cactus总是配置不好,运行不起来.前几章还讲到了很多框架,比如Jetty.EasyMoc ...
- Java(十四)----Junit测试
1.1 Junit是什么 Junit是Java语言编写的第三方单元测试框架 1.2 单元测试概念 单元:在Java中,一个类就是一个单元 单元测试:程序猿编写的一小段代码,用来对某个类中的某个方法进行 ...
- java写抽象类的测试_如何使用JUnit在Java中测试抽象类?
如何使用JUnit在Java中测试抽象类? 我是JUnit的Java测试新手. 我必须使用Java,我想使用单元测试. 我的问题是:我有一个带有一些抽象方法的抽象类. 但是有些方法并不是抽象的. 如何 ...
- java junit 怎么写_使用JUnit测试java代码
标签: Junit 单元测试实验报告 一.实验环境 MyEclipse2014.Junit4.10 二.实验目的 学会单元测试,在MyEclipse中进行Junit测试 三.实验步骤 1.写出要测试的 ...
- java如何做测试数据库_如何模拟用于测试的数据库(Java)?
我在Java编程,我的应用程序正在做很多使用DB.因此,重要的是我能够轻松地测试我的数据库使用. 什么是数据库测试?对我来说,他们应该提供两个简单的要求: >验证SQL语法. >更重要的是 ...
- junit rule_使用@Rule在JUnit中测试文件和目录
junit rule 多亏了TemporaryFolder @Rule在JUnit中使用文件和目录进行测试很容易. 在JUnit中,规则( @Rule )可以用作夹具设置和清除方法( org.juni ...
- JNI开发笔记(八)--Java读取txt文件进行JNI测试
Java读取txt文件进行JNI测试 引 前言 1. 新建assets文件夹 2. 载入测试文件 3. 建立文件读取方法 4. 在MainActivity中读取文件数据 引 JNI开发笔记(一)–An ...
最新文章
- c语言单链表的字母排序,链表排序——选择排序法(纯C语言版)
- 视频|结构光编码与三维重建
- d类功放芯片_【学术论文】应用于无滤波级D类音频功放的新型死区时间控制系统...
- java即时编译器_Java即时编译:不仅仅是一个流行词
- 知识图谱论文阅读(九)【转】推荐系统遇到知识图谱之MKR模型
- android os自动联网,联网设置指南
- pjk static tp.php,在测试服上偶然出现 Error: Loading chunk 5 failed.
- 【介绍】GNES ——Pythonic的直观方式快速构建神经搜索框架
- jQuery ajax 文件上传携带附加参数
- dll.dll病毒及解决办法
- Docker安装Jenkins教程
- 安居客头部买房部分书写
- Python爬虫从入门到精通:(14)验证码识别_Python涛哥
- 计算机word的关闭怎么办,电脑无法打开Word提示已停止工作并自动退出怎么办
- 收藏 | 史上最详细的 Landsat 1-9 系列数据集介绍~
- 多显示器屏幕枚举方法
- 《C++ Primer 第5版》-11.4无序容器-康奈尔笔记
- DIY:利用单片机自制的RGB拖尾流水灯,含电路图、源代码、演示视频、效果图
- 深入理解计算机系统 第3章 程序的机器级表示
- Android离线文字转语音(TTS)原生实现
热门文章
- HLG2081分苹果
- 一个通用Makefile详解
- BLE】CC2541之通过RSSI测距
- 强化学习(三)—— 策略学习(Policy-Based)及策略梯度(Policy Gradient)
- C++ Primer 5th笔记(chap 13 拷贝控制)拷贝赋值函数
- 【MySQL】求每门科目成绩排名前二的学生信息
- ARMV8-M学习笔记-入门
- [toolchains]-ARM ToolChains介绍
- [optee]-opteeTA启动的过程(open_ta的过程)
- C/C++ 输出整数带正负号