问题标签 [fudge]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何存根对象的 __call__ 方法?
我正在使用Nose
andFudge
进行单元测试。考虑以下类:
和一个测试:
我得到的错误是:
我正在存根的代码有一个看起来像这样的返回行(“ SomeCommandline
”的真实版本)
为什么我收到 TypeError 说 Fake 不可迭代,我该如何存根这个方法fudge
?
python - 自动模拟 Python?
我习惯于在 C# 中使用AutoFixture.AutoMoq,并想知道 Python 是否有类似的东西。我没有使用 django 或数据库,所以django-autofixture
不会帮助我。
我正在寻找的是可以减少我需要编写的代码,以使用存根/模拟设置所有相互关联的对象以进行测试。我正在使用 IoC 模式进行设计(但没有 DI 框架,因为 Python 并不真正需要它们)。
我正在使用鼻子和软糖。
python - Fudge:当从 X 导入 Y'ing 而不是导入 X 时,@patch 不起作用?
patch
我在 Fudge 1.0.3 中遇到了装饰器的一种奇怪行为。通过导入类时它不会修补模块
但在导入时工作正常
与相应的代码适配。
这是一个最小化的设置:
mdle.py:
some.py(测试不工作):
some.py(测试工作):
some_test.py:
我应该以不同的方式修补吗?这是 Fudge 的限制,还是错误?
python - 如何在 pytest 中使用 fudge.patch
我正在从鼻子切换到pytest并且在使用fudge创建模拟/伪造品时遇到问题,因为@fudge.patch
将它们传递给测试函数但 pytest 将测试函数参数解释为固定装置。
我想知道 pytest 和 fudge 是否从根本上不兼容,或者我是否缺少一个技巧。我更喜欢 fudge而不是mock,因为它允许您在测试之前更直观地设置期望,而 mock 通过在测试之前定义返回值和之后定义预期调用来拆分事物。
用鼻子我可以用这样的猴子补丁fudge.Fake
:
请注意 fudge 如何让您在一个地方设置预期调用和虚假返回,我发现这比 mock 更直观。
但是,使用 pytest 会引发异常,因为 pytest 将测试函数的参数解释为夹具,并且不知道名为 fake_today 的夹具:
我可以将 a 声明fake_today
为夹具,但我认为 pytest 不会检查期望值,如果确实如此,那么无论在何处使用夹具,它都会始终具有相同的期望值,这并不总是有意义的。
我可以monkeypatch
在测试函数中使用fixture 来注入Fake
s,但这不如使用装饰器那么简洁。
我还可以定义返回Fake
这样的固定装置:
但是你必须为每一个Fake
你想注射的人都这样做,这看起来很笨拙。
不知道什么是最好的方法。