我有一段类似于下面的代码,我被要求进行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测试模拟文件操作相关推荐

  1. java定义计算机类并模拟其操作

    java定义计算机类并模拟其操作 /*** 定义计算机类并模拟其操作*/ public class Computer {//成员变量private String cpu = "Intel&q ...

  2. 测试学习java_使用Junit测试框架学习Java

    前言 在日常的开发中,离不开单元测试,而且在学习Java时,特别是在测试不同API使用时要不停的写main方法,显得很繁琐,所以这里介绍使用Junit学习Java的方法.此外,我使用log4j将结果输 ...

  3. java junit 覆盖率,使用Clover为JUnit测试做测试覆盖率分析

    最近一直在看<JUnit in Action>一书,前几章看的还行,到第九章就出问题了,因为我的Cactus总是配置不好,运行不起来.前几章还讲到了很多框架,比如Jetty.EasyMoc ...

  4. Java(十四)----Junit测试

    1.1 Junit是什么 Junit是Java语言编写的第三方单元测试框架 1.2 单元测试概念 单元:在Java中,一个类就是一个单元 单元测试:程序猿编写的一小段代码,用来对某个类中的某个方法进行 ...

  5. java写抽象类的测试_如何使用JUnit在Java中测试抽象类?

    如何使用JUnit在Java中测试抽象类? 我是JUnit的Java测试新手. 我必须使用Java,我想使用单元测试. 我的问题是:我有一个带有一些抽象方法的抽象类. 但是有些方法并不是抽象的. 如何 ...

  6. java junit 怎么写_使用JUnit测试java代码

    标签: Junit 单元测试实验报告 一.实验环境 MyEclipse2014.Junit4.10 二.实验目的 学会单元测试,在MyEclipse中进行Junit测试 三.实验步骤 1.写出要测试的 ...

  7. java如何做测试数据库_如何模拟用于测试的数据库(Java)?

    我在Java编程,我的应用程序正在做很多使用DB.因此,重要的是我能够轻松地测试我的数据库使用. 什么是数据库测试?对我来说,他们应该提供两个简单的要求: >验证SQL语法. >更重要的是 ...

  8. junit rule_使用@Rule在JUnit中测试文件和目录

    junit rule 多亏了TemporaryFolder @Rule在JUnit中使用文件和目录进行测试很容易. 在JUnit中,规则( @Rule )可以用作夹具设置和清除方法( org.juni ...

  9. JNI开发笔记(八)--Java读取txt文件进行JNI测试

    Java读取txt文件进行JNI测试 引 前言 1. 新建assets文件夹 2. 载入测试文件 3. 建立文件读取方法 4. 在MainActivity中读取文件数据 引 JNI开发笔记(一)–An ...

最新文章

  1. c语言单链表的字母排序,链表排序——选择排序法(纯C语言版)
  2. 视频|结构光编码与三维重建
  3. d类功放芯片_【学术论文】应用于无滤波级D类音频功放的新型死区时间控制系统...
  4. java即时编译器_Java即时编译:不仅仅是一个流行词
  5. 知识图谱论文阅读(九)【转】推荐系统遇到知识图谱之MKR模型
  6. android os自动联网,联网设置指南
  7. pjk static tp.php,在测试服上偶然出现 Error: Loading chunk 5 failed.
  8. 【介绍】GNES ——Pythonic的直观方式快速构建神经搜索框架
  9. jQuery ajax 文件上传携带附加参数
  10. dll.dll病毒及解决办法
  11. Docker安装Jenkins教程
  12. 安居客头部买房部分书写
  13. Python爬虫从入门到精通:(14)验证码识别_Python涛哥
  14. 计算机word的关闭怎么办,电脑无法打开Word提示已停止工作并自动退出怎么办
  15. 收藏 | 史上最详细的 Landsat 1-9 系列数据集介绍~
  16. 多显示器屏幕枚举方法
  17. 《C++ Primer 第5版》-11.4无序容器-康奈尔笔记
  18. DIY:利用单片机自制的RGB拖尾流水灯,含电路图、源代码、演示视频、效果图
  19. 深入理解计算机系统 第3章 程序的机器级表示
  20. Android离线文字转语音(TTS)原生实现

热门文章

  1. HLG2081分苹果
  2. 一个通用Makefile详解
  3. BLE】CC2541之通过RSSI测距
  4. 强化学习(三)—— 策略学习(Policy-Based)及策略梯度(Policy Gradient)
  5. C++ Primer 5th笔记(chap 13 拷贝控制)拷贝赋值函数
  6. 【MySQL】求每门科目成绩排名前二的学生信息
  7. ARMV8-M学习笔记-入门
  8. [toolchains]-ARM ToolChains介绍
  9. [optee]-opteeTA启动的过程(open_ta的过程)
  10. C/C++ 输出整数带正负号