![]() |
1
5
使用迈克尔·福德的 Mock 在单元测试中,请执行以下操作:
|
![]() |
2
7
你可以使用
Mock objects
截获您不想执行的方法调用。
例如,你上了一些课
模拟对象可以继承自
然后创建
有大量的模拟框架可用。参见 StackOverflow: Python mocking frameworks . |
![]() |
3
1
我遇到的大问题是依赖注入的机制。我现在已经把那部分算出来了。 我需要在两个地方以完全相同的方式导入模块,以成功地注入新代码。例如,如果我有以下要禁用的代码:
在我的测试运行程序中,我似乎无法执行此操作:
python解释器必须处理模块
|
![]() |
4
0
通常情况下,当出现这种情况时,您可以使用猴子修补(也称为鸭子穿孔)来达到所需的效果。退房 this link 了解更多关于猴子修补的信息。 例如,在本例中,您将覆盖solr以只打印您要查找的输出。 |
![]() |
5
0
你有两种方法可以做到这不是 或最小 DI , 对源代码的修改 这个 cleanest 使用方式 dependency injection 但是 I don't really like extensive monkeypatching 还有一些事情是不可能/很难做到的 dependency injection 容易。 |
![]() |
6
0
我知道这是模拟对象的典型用例,但这也是一个古老的论点…模拟物体到底是必要的还是必要的? 邪恶的 ? 我支持那些相信嘲笑的人 邪恶的 并尽量避免更改测试代码。我甚至认为修改测试代码的这种需要是一种代码味道… 如果您希望更改或拦截内部函数调用以进行测试,您也可以在安装时将此函数设置为一个显式的外部依赖项集,由生产代码和测试代码提供。如果你这样做,问题就消失了,最终你得到了一个更干净的界面。 注意,这样做根本不需要更改测试代码,无论是在内部还是通过正在执行的测试。 |
![]() |
SkarabePL · Yii2依赖注入、配置和继承 6 年前 |