mocking相关内容

用另一个上下文中的模拟版本替换一个上下文中的 spring bean

我正在编写一个集成测试,其中应用程序上下文 xml 在启动期间被初始化.测试类中有几种测试方法,它们使用特定的 bean 'X'(已经在 xml 中定义).我的实际要求是仅针对其中一种测试方法模拟 bean X. 在测试方法中:我尝试使用 ClassPathXMLApplicationContext 创建一个单独的应用程序上下文,其中只有模拟 bean 'M'. 现在我有两个应用程序上 ..
发布时间:2022-01-08 22:21:15 其他开发

在 Flask 单元测试中,如何模拟请求全局“g"对象上的对象?

我有一个烧瓶应用程序,它在 before_filter 中设置数据库连接,非常类似于 这个: @app.before_requestdef before_request():g.db = connect_db() 现在:我正在编写一些单元测试,但我确实不希望它们进入数据库.我想用可以设置期望的模拟对象替换 g.db. 我的测试使用 app.test_client(),正如烧瓶文档 这里. ..
发布时间:2022-01-08 22:21:08 Python

如何正确地对我的 DAL 进行单元测试?

我是单元测试的新手.但是如何对使用 Entity Framework 编写的 DAL 进行单元测试,以便确保我的 DAL 代码正常工作但实际上没有触及数据库?谁能提供尽可能详细的信息. 解决方案 如果你想测试你的数据访问层是否正常工作,你真的需要在某个时候针对数据库进行测试,否则你实际上并没有测试它有效. ..

在 Python 中模拟类方法并更改某些对象属性

我是 Python 中的新手.我想知道如何在用另一个类方法进行测试时替换(模拟)一个类方法,知道原来的只是改变了 self 的一些属性而不返回任何值.例如: def some_method(self):自我.x = 4自我.y = 6 所以在这里我不能只更改模拟的 return_value.我试图定义一个新函数(应该替换原来的函数)并将其作为 side_effect 提供给模拟.但是我怎样才能 ..
发布时间:2022-01-08 22:20:48 Python

Python mock:模拟继承的基类

我正在测试一个从另一个非常复杂的类继承的类,具有数据库连接方法和一堆依赖项.我想模拟它的基类,以便我可以很好地使用子类中定义的方法,但是在我从模拟类继承的那一刻,对象本身变成了模拟并丢失了它的所有方法. 如何模拟超类? 这种情况或多或少可以概括为: 导入模拟ClassMock = mock.MagicMock()类RealClass(ClassMock):def 大声笑(自我):打印 ..
发布时间:2022-01-08 22:20:41 Python

处理具有当前时间条件的单元测试

我正在尝试为我正在处理的项目中的一些实用程序类设置单元测试,其中一个类(包含许可信息)具有一种基于当前时间进行某些确定的方法. 即许可证包含到期日期,并且许可证字符串验证该日期,但查看许可证是否过期的实际逻辑是基于当前时间. public boolean isValid(){返回 isLicenseStringValid() &&!isExpired();}公共布尔 isExpired() ..
发布时间:2022-01-08 22:20:33 Java开发

为什么我们需要模拟框架?

我使用过编写了 NUnit 测试的代码.但是,我从未使用过模拟框架.这些是什么?我了解依赖注入以及它如何帮助提高可测试性.我的意思是在单元测试时可以模拟所有依赖项.但是,那为什么我们需要模拟框架呢?我们不能简单地创建模拟对象并提供依赖项.我在这里错过了什么吗?谢谢. 解决方案 它使模拟更容易 他们通常让你表达可测试提到的断言对象之间的交互. 这里有一个例子: var extens ..
发布时间:2022-01-08 22:20:27 C#/.NET

如何模拟 Elmah 的 ErrorSignal 例程?

我们使用 ELMAH 来处理我们的 ASP.Net MVC c# 应用程序中的错误,并且在我们捕获的异常中,我们正在做这样的事情: ErrorSignal.FromCurrentContext().Raise(exception); 但是当我尝试对捕获的异常进行单元测试时,我收到以下消息: System.ArgumentNullException:值不能为空.参数名称:上下文 如何模拟 F ..
发布时间:2022-01-08 22:20:20 C#/.NET

如何使用 python mock 直接模拟超类?

我正在使用 python 模拟框架进行测试 (http://www.voidspace.org.uk/python/mock/),我想模拟一个超类并专注于测试子类的添加行为. (对于那些感兴趣的人,我已经扩展了 pymongo.collection.Collection,我只想测试我添加的行为.我不想为了测试目的而将 mongodb 作为另一个进程运行.) 对于本次讨论,A 是超类,B ..
发布时间:2022-01-08 22:20:12 Python

模拟 - 如何在调用者上引发异常?

假设这是代码 def move(*args, **kwargs):尝试:shutil.move(源,目的地)例外为 e:提高e 在我的tests.py中 @patch.object(shutil, 'move')def test_move_catch_exception(self, mock_rmtree):''' 测试移动目标命中异常.'''mock_rmtree.side_effect ..
发布时间:2022-01-08 22:19:58 Python

如何模拟私有字段?

我对模拟真的很陌生,正在尝试用模拟对象替换私有字段.目前,私有字段的实例是在构造函数中创建的.我的代码看起来像... 公共类缓存{私人 ISnapshot _lastest_snapshot;公共 ISnapshot 最新快照 {得到 { 返回 this._lastest_snapshot;}私人设置 { this._latest_snapshot = value;}}公共缓存(){this.L ..
发布时间:2022-01-08 22:19:52 C#/.NET

在使用 Mockito 进行方法调用时拦截对象

我有一个类似 void 方法的模拟类 public class Mock {公共无效方法(字符串){//做一点事}} 我不关心这个方法的作用,但我想发送字符串. 这个字符串实际上是一个 JSON 格式的对象,我正在测试的方法是根据最初发送的字符串修改这个对象(假设是非常随机的). 方法(字符串 json){对象 obj = unparse(json);obj.setRandomValu ..
发布时间:2022-01-08 22:19:25 Java开发

嘲讽的目的

嘲笑的目的是什么? 我一直在关注一些使用 NUnit 进行测试和 Moq 进行模拟的 ASP.NET MVC 教程.不过,我对其中的嘲弄部分有点不清楚. 解决方案 模拟的目的是将被测试的类与其他类隔离. 这在上课时很有帮助: 连接到外部资源(文件系统、数据库、网络...) 设置成本高昂,或尚不可用(正在开发硬件) 减慢单元测试的执行速度 具有不确定的行为 拥有(或 ..
发布时间:2022-01-08 22:19:08 其他开发

在集成测试中进行模拟是否被认为是一种好习惯?

有人告诉我@Mock 通常只用于单元测试,但我认为它对于替换测试类之外的外部部分很有用.在集成测试中模拟是否正确? 解决方案 最后,这都是关于措辞的. 当您从最基本的意义上考虑“正确"时,例如 正确性,那么答案很简单:没有. 您知道,集成测试的目标是确保您的集成系统(由多个不同的组件组成)按预期运行.集成测试的目的是验证您的组件“管道"是否按预期工作.因此:当系统的部分被模拟出 ..
发布时间:2022-01-08 22:19:01 Java开发

什么时候期待什么时候存根?

我使用 NMock2,并起草了以下 NMock 类来表示一些常见的模拟框架概念: Expect:这指定了一个模拟方法应该返回什么,并表示调用必须发生或测试失败(伴随着对 VerifyAllExpectationsHaveBeenMet() 的调用). Stub:指定模拟方法应返回的内容,但不会导致测试失败. 那么我应该什么时候做呢? 解决方案 很多mocking框架都带来 ..
发布时间:2022-01-08 22:18:53 其他开发

使用 Soley 接口来促进单元测试中的 Stubing 和 Mocking 现在已经过时了吗?

在 .NET 中,TypeMock Isolator 和 Microsoft Moles 允许隔离任何类、属性或方法 - 无论是密封的、静态的、受保护的还是非虚拟的.所以在 Moq 或 Rhino Mocks 中不可能模拟的东西,现在不再是这样了. 我一直对使用接口只是为了能够允许模拟的想法有些反感,否则只会存在具体的类.我并不孤单(请参阅此处,这里和这里).在后面,它暗示“现代"模拟框架不 ..
发布时间:2022-01-08 22:18:46 C#/.NET

用数据填充 ResultSet 的简单方法

我想模拟一个 ResultSet.严重地.我正在重构一大段复杂的代码,它正在解析来自 ResultSet 的数据,并且我希望我的代码具有相同的行为.所以,我需要为正在重构的部分编写一个单元测试,以便能够对此进行测试. 谷歌搜索后,我想出了两个想法: 使用 EasyMock,编写 looooong 模拟序列.非常糟糕的解决方案:难以添加初始数据、难以更改数据、大量的测试调试. 使用 A ..
发布时间:2022-01-08 22:18:39 Java开发