在Linux上伪造IO错误

汤姆:

我在Linux上有一个Python和C应用程序,可以从磁盘读取文件时正确处理IO错误。该应用程序的大部分使用Python编写,带有C扩展来执行IO。在此扩展中,可以检测到IO错误。

在两种情况下,这些错误似乎对我来说会发生。

  1. 文件丢失。
  2. 磁盘上(使用stat显示的文件大于使用读取的文件fread

我可以轻松地测试和处理1号案件。但是,我也想为情况2编写单元测试。但是,我不知道如何为测试触发“假” IO错误。这有可能吗?有没有更好的方法来测试这种错误?

这确实不假:

据我了解,TDD的经典警告我们不要编写用于第三方接口(包括标准库)的模拟/存根,例如,请参见此处主要问题是应用程序代码和通用第三方库之间通常存在差距,很难与模拟对象联系在一起。而且,这会阻止您使用测试来得出设计问题。

(即使在您的情况下C库并非完全是第三方,单元测试也意味着您要单独测试实体)。

其想法是,您改为编写一个适配器类,该类封装所有低级逻辑并公开接近您的应用程序所需接口的接口(例如,引发更有意义的异常,如FileIsTooBig)。然后,根据您的域编写模拟对象。至于测试适配器本身,它只经过了一些简单的系统测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

伪造IO流

来自分类Dev

在 Mac OS 上通过 Intellij 启动伪造时收到奇怪的错误

来自分类Dev

找不到DLL伪造错误

来自分类Dev

导入io上的Angstrom Python错误

来自分类Dev

在snack.io 上出现“RNCSafeAreaProvider”错误

来自分类Dev

在Nitrous.io错误上安装MySQL

来自分类Dev

如何在Linux上监视内存IO

来自分类Dev

Linux 上的 Apache Camel 文件 IO

来自分类Linux

Linux上的Python模块错误

来自分类Linux

Linux上的Vagrant Up错误

来自分类Linux

Linux上的Gtk +版本错误

来自分类Linux

Linux上的AVX分段错误

来自分类Dev

Windows上的linux上的分段错误

来自分类Java

Eclipse Gradle项目设置伪造错误通知

来自分类Dev

在Linux中创建伪造的RDNS解析

来自分类Linux

Linux和-fPIC上的共享库错误

来自分类Linux

在Linux上尝试/捕获分段错误

来自分类Dev

在 linux mint 上安装 PHOENIX(错误:OpenSSL)

来自分类Dev

RVM在Arch Linux上安装ruby错误

来自分类Dev

仅在Linux上怪异的C ++未知错误

来自分类Dev

GDB在Arch Linux上引发错误

来自分类Dev

Linux LVM上的I / O错误

来自分类Dev

在Linux上安装pymc时出现错误

来自分类Dev

Linux上的Breakpad测试示例错误

来自分类Dev

使用ExUnit测试时,如何伪造IO输入?

来自分类Dev

launchimage:trigger.io伪造默认的launchimage在我的面前显示

来自分类Dev

在Ubuntu 14.04上安装Socket.IO时生成错误

来自分类Dev

Heroku上的Socket.io“会话ID未知”错误

来自分类Dev

Drone.io上的apt-get错误