使用依赖网络的代码进行单元测试

2024-01-05

我正在努力更好地对我的代码进行单元测试,但现在我正在编写大量处理远程系统的代码。 SNMP、WMI 之类的。对于大多数类,我可以模拟对象来测试它们,但是如何处理真实系统的单元测试呢?例如,如果我的类出去并获取服务器的 Win32_LogicalDisk 对象,我如何可能对其进行单元测试?


假设您的意思是“我如何测试难以/不可能模拟的事物”:

如果您有一个类“出去并获取服务器的 Win32_LogicalDisk 对象”并执行其他操作(以某种方式消耗“Win32_LogicalDisk”对象),假设您想要测试消耗该对象的类的各个部分,那么您可以可以使用依赖注入 http://en.wikipedia.org/wiki/Dependency_injection允许您模拟“Win32_LogicalDisk”对象。例如:

class LogicalDiskConsumer(object):

    def __init__(self, arg1, arg2, LogicalDiskFactory)
        self.arg1=arg1
        self.arg2=arg2
        self.LogicalDisk=LogicalDiskFactory()

    def consumedisk(self):
        self.LogicalDisk.someaction()

然后在单元测试代码中,传入一个“LogicalDiskFactory”,它返回“Win32_LogicalDisk”的模拟对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用依赖网络的代码进行单元测试 的相关文章

  • 如何在python中获取硬盘驱动器的序列号

    我尝试使用wmi来获取硬盘的序列号 我所做的是这样的 启动ipython并使用以下方式获取序列号 import wmi c wmi WMI for x in c Win32 PhysicalMedia print x 结果是这样的 inst
  • 对 Java Servlet 进行单元测试

    我想知道对 servlet 进行单元测试的最佳方法是什么 只要内部方法不引用 servlet 上下文 测试内部方法就不是问题 但是测试 doGet doPost 方法以及引用上下文或使用会话参数的内部方法呢 有没有办法简单地使用经典工具 例
  • 模拟类:Mock() 还是 patch()?

    我在用mock http www voidspace org uk python mock index html使用Python 想知道这两种方法中哪一种更好 阅读 更Pythonic 方法一 只需创建一个模拟对象并使用它 代码如下 def
  • Rspec 控制器测试,传递 JSON 参数

    我试图实现以下目标 在 RSpec 控制器测试中创建 POST json 请求 并向其传递参数 这是我的代码 it returns access token do post login email bla password bla1 for
  • XCode:代码覆盖率数据生成失败

    当我尝试运行单元测试时 我在 Objective C 项目中遇到了这个可怕的问题 我已经尝试了以下所有方法 根据各种 SOF 帖子 清除派生数据 删除 Library 中的所有模拟器设置 重新启动 XCode 重新启动MBP 多次重置模拟器
  • 使用 RSpec 进行 Rails 片段缓存测试

    我觉得这是一个没有太多记录的主题 至少我在这里找到最佳实践时遇到了很多麻烦 我使用 cache key 在视图中进行片段缓存 tbody employees each do employee cache employee do tr emp
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • Spock模拟inputStream导致无限循环

    我有一个代码 gridFSFile inputStream bytes 当我尝试这样测试时 given def inputStream Mock InputStream def gridFSDBFile Mock GridFSDBFile
  • 单元测试组合服务方法

    我正在为一个类编写 junit 单元测试 该类使用以下方法实现公开的接口 public Set
  • 如何在 OS X 上的旧版 Safari 中测试我的网站?

    苹果似乎不提供旧版本 Safari 的下载 我什至不确定它们是否会安装在 Mac OS X 上 因为 Safari 似乎是操作系统的一部分 就像 Windows 上的 Internet Explorer 一样 有什么方法可以在旧版本的 Sa
  • 与 White 的集成测试[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有人有白色框架的经验吗 www co
  • 使用 Karma 运行的 Mocha 单元测试 - did() 未定义

    我正在尝试使用 Mocha 编写的测试来运行 Karma 它们确实可以工作 但我无法使用 did 方法来实现异步测试 这本质上使这些工具对我来说毫无用处 我缺少什么 karma conf js module exports function
  • 如何限制Cargo.toml中的测试线程数?

    我的测试共享公共资源并且无法同时执行 这些测试失败cargo test 但与RUST TEST THREADS 1 cargo test 我可以修改测试以等待全局互斥体 但如果有任何更简单的方法来强制 我不想让它们混乱cargo为我设置这个
  • 运行连接到 Django 测试数据库的 Celery Worker

    背景 我正在开发一个项目 该项目使用 Celery 来安排将在未来某个时间运行的任务 这些任务推动最终状态机的状态向前发展 这是一个例子 未来的提醒计划在 2 天内发送给用户 当该计划任务运行时 会发送一封电子邮件 并且 FSM 会前进到下
  • 如何测试 Jersey REST Web 服务?

    我已经编写了一个 Restful Web 服务 并且必须使用 JUnit4 对其进行测试 我已经使用 Jersey Client 编写了一个客户端 但想知道我是否只能使用 junit4 测试我的服务 至少有人可以帮我提供样品吗 我的休息服务
  • XCTestExpectation 错误:API 违规 - 多次调用 -[XCTestExpectation fill]

    我在 Xcode 6 Beta 5 中使用 XCTestExpectations 进行异步测试 我的所有异步测试每次运行时都会单独通过 但是 当我尝试运行整个套件时 某些测试未通过 并且应用程序崩溃了 我得到的错误是说API violati
  • 在不使用魔术字符串的情况下将参数传递给 FakeItEasy-mock?

    我一直在使用Moq http code google com p moq 为了满足我过去几年的嘲笑需求 但看了之后假装简单 http code google com p fakeiteasy 我想尝试一下 我经常想测试是否使用正确的参数调用
  • Android RxJava 2 JUnit 测试 - android.os.Looper 中的 getMainLooper 未模拟 RuntimeException

    我在尝试为正在使用的演示者运行 JUnit 测试时遇到 RuntimeExceptionobserveOn AndroidSchedulers mainThread 由于它们是纯 JUnit 测试而不是 Android 仪器测试 因此它们无
  • Windows 程序如何临时更改其时区?

    我写了一个函数来返回time t与给定日期的午夜相对应的值 当给定日期没有午夜时 它返回最早可用的时间 例如 当埃及进入夏令时时 这种情况就可能发生 今年 时间更改于 4 月 29 日晚上午夜生效 因此时钟直接从 23 59 转到 01 0
  • 在 React 中使用 setTimeout() 并测试它

    我意识到我一直在使用setTimeout 在我的项目中 也许 比我应该做的更多 我进行了快速研究并浏览了 Github 上的一些开源 React 项目 并决定我应该询问一下 I use setTimeout主要是为了更改类名或添加样式以对

随机推荐

  • SQL Server 标识规范不连续

    我注意到 SQL Server 2008 Express 在插入自动递增标识规范时会随机向前跳转 例如 我的其中一列 HitStat ID 将依次插入 15 16 17 18 然后突然间 它将决定跳转到 例如 1012 1013 1014
  • Typescript 与 Polymer 1.0?

    我发现这篇很棒的文章我一直在使用 Polymer 0 5 http www mikecann co uk programming tinkering with google polymer and typescript http www m
  • Firefox 中的预加载图像不会在同一页面加载时从缓存中检索

    在某些情况下 我正在网站的主页上运行脚本来交换计时器上的背景图像 我们认为最好尝试实现图像预加载 这会在 Firefox 中提示以下问题 在首页加载时预加载图像不会阻止浏览器再次从原始源而不是缓存加载图像 但奇怪的是 刷新页面会成功地从缓存
  • 如何使用 Flask 和 Flask-login 传递“下一个”URL?

    的文档Flask 登录 https flask login readthedocs org en latest 谈论处理 下一个 URL 这个想法似乎是 用户前往 secret 用户被重定向到登录页面 例如 login 登录成功后 用户将被
  • 将 UIWebView 限制为特定 URL (Swift)

    我正在尝试开发一款 iOS 应用程序 该应用程序在 Swift 中具有 UIWebView 但是我需要它仅适用于一个域 并且在该 UIWebView 中单击的任何外部链接都将在 Safari 中打开 例如 所有链接http example
  • 延迟初始化和 deinit

    我想知道是否有可能在我的视图控制器中使用惰性属性并在deinit方法仅在初始化时才调用我的惰性属性的方法 下面是一些代码 fileprivate lazy var session MySession let session MySessio
  • Rails 4 - 具有简单形式的依赖字段的 JS

    我正在尝试在 Rails 4 中制作一个应用程序 我正在使用简单的表单作为表单 并且刚刚尝试使用 gem dependent fields rails 来隐藏或显示基于主要问题的表单字段的子集问题 我被卡住了 我已将 gem 添加到我的 g
  • Javascript 与 Firefox insideText 问题[重复]

    这个问题在这里已经有答案了 function OpenWindow anchor var toUsername anchor innerText window open ChatWindow aspx username toUsername
  • Objective c - 处理自定义 UITableViewCell 按钮的按钮触摸事件的最佳实践

    处理自定义按钮的按钮触摸事件的最佳实践是什么UITableViewCell 我的课程 MyViewController MyCustomCell 我可以想到三个选择 第一个选项 将按钮作为属性MyCustomCell 然后在其中添加一个目标
  • 如何将字典附加到 pandas 数据框?

    我有一组包含 json 文件的 url 和一个空的 pandas 数据框 其中的列表示 jsnon 文件的属性 并非所有 json 文件都具有 pandas 数据框中的所有属性 我需要做的是从 json 文件创建字典 然后将每个字典作为新行
  • 将 FFmpeg 与 Android-NDK 结合使用

    我想用FFmpeg with Android NDK我在这方面非常基础 我需要一些帮助 我之前在网上研究过这个主题 但没有得到令人满意的解决方案 1 我如何使用FFmpeg通过 Windows 操作系统 我不想使用Ubuntu 请不要建议
  • 允许在url重写中使用中文字符

    我写了 URL 重写规则
  • 在 GDB 中搜索源目录

    如何告诉 nix 中的 GDB 在单个目录中递归搜索源文件 例如 如果一个模块中有一些不同的构建块 a 是 b c d 的父目录 其中 b c d 是子目录 源文件分布在b c b中 我需要向 GDB 指定所有源文件都位于 a 父目录 中
  • 我应该使用 PhoneGap 而不是增加 Android SDK 吗?

    虽然我对 Java 很熟悉 但我在 Web 开发方面有更多的经验 我希望开始编写简单的 Android 游戏 我是否应该只使用 Javascript HTML 来编写所有内容 而忘记在 Java Android SDK 上进行升级 我想我的
  • AngularJS 单击时更改控制器中的部分内容

    我正在开发一个仪表板应用程序 其中同时显示一组模块 我想向这些模块添加多个 视图 例如 Github 模块的第一个视图是存储库列表 当您单击该模块中的存储库链接时 模块中的该视图将被替换为一个新屏幕 显示有关该存储库的所有详细信息 但是 我
  • ASP.Net MVC 3 登录和 Windows 身份验证

    我正在开发 ASP Net MVC 3 应用程序 并且有一个存储用户名及其密码的用户表 我创建了一个额外的 ADUsername 存储 Active Directory 的域 用户名 我正在尝试执行以下操作 从 Intranet 运行应用程
  • Cl.exe 返回错误代码 D8050

    我在使用 microsoft Visual Studio Ultimate 2013 全新安装 Windows 8 时出现以下错误 cl Command line error D8050 cannot execute C Program F
  • 如何通过 urlfetchapp 发送带有有效负载中的数组的 post 请求

    我需要模拟从 html 表单到页面的 post 请求 我需要知道如何在有效负载中正确发送数组 提前致谢 我有简单的 html 代码 目标页面将以这种方式收到提交 args data files form Link picturelink1
  • 重定向到文件后使用 cout 或 cerr 输出到控制台

    将 cout 或 cerr 重定向到文件非常容易 我可以用它来将第三方输出重定向到文件 但是 当我将第三方输出重定向到文件后 我自己如何使用 cout 输出到控制台 我是 RAII 的忠实粉丝 所以我曾经编写过这个小助手类 它将重定向流 直
  • 使用依赖网络的代码进行单元测试

    我正在努力更好地对我的代码进行单元测试 但现在我正在编写大量处理远程系统的代码 SNMP WMI 之类的 对于大多数类 我可以模拟对象来测试它们 但是如何处理真实系统的单元测试呢 例如 如果我的类出去并获取服务器的 Win32 Logica