我mock
在Python中使用时遇到了一些困难:
def method_under_test():
r = requests.post("http://localhost/post")
print r.ok # prints "<MagicMock name='post().ok' id='11111111'>"
if r.ok:
return StartResult()
else:
raise Exception()
class MethodUnderTestTest(TestCase):
def test_method_under_test(self):
with patch('requests.post') as patched_post:
patched_post.return_value.ok = True
result = method_under_test()
self.assertEqual(type(result), StartResult,
"Failed to return a StartResult.")
测试实际上返回正确的值,但r.ok
它是Mock对象,不是True
。您如何在Pythonmock
库中模拟属性?
您需要使用return_value
和PropertyMock
:
with patch('requests.post') as patched_post:
type(patched_post.return_value).ok = PropertyMock(return_value=True)
这意味着:调用时requests.post
,在该调用的返回值上,PropertyMock
为属性设置aok
以返回value True
。
问题内容: 我正在开发一个Web应用程序,该应用程序显然在iOS设备中存在问题。问题是我不拥有iOS设备,而是在Linux Ubuntu中进行开发。我正在寻找一种在Linux(尤其是浏览器)中仿真/模拟此OS的方法,但是还没有找到任何东西。 到目前为止,我发现的是iOS SDK的Simulator,但这是针对Mac的。还有一些Windows模拟器。有人做过吗? 问题答案: 我能想到的唯一解决方案是
问题内容: 我正在尝试近两个小时,没有任何运气。 我有一个看起来像这样的模块: 稍后在代码中: 有任何想法吗? 编辑: 亚历克斯的建议似乎无效: 运行测试时: 但是,当我从python交互式控制台运行相同的代码时,它 确实 起作用。 更多编辑: 我正在使用一个测试文件,该文件具有特定于我模块这一部分的所有测试。首先,我导入可用的模块,以演示和测试常用用法。缺少软件包被认为是一种极端情况,因此我稍后
问题内容: 我该如何与正在测试的班级中的Mockito其他班级进行模拟? 例如: MyClass.java 任何东西PerformerClass.java 并测试: 我是否可以欺骗以排除不必要的逻辑?我可以重写方法来简单地返回还是? 为什么指定Mockito,因为在Robolectric进行Android测试时需要它。 问题答案: 您可以重构,以便它使用依赖注入。不用让它创建实例,您可以将类的实例
我试图理解如何使用python的unittest框架 我有一段代码,看起来像这样-- 有人能帮我开发unittest模块来测试这个吗?我问这个问题是为了学习如何使用单元测试(我试图学习TTD:测试驱动开发) 到目前为止,我想出了这个...导入单元测试导入os.path 类TestFunctions(unittest.TestCase): 如果name==“main”:unittest。main()
问题内容: 搜索了几个小时后,我想知道是否有可能模拟键盘上的按下按键。例如,我希望我的程序将按键保持5秒钟,因此当我在记事本中运行它时,它看起来像是这样的:。我在互联网上尝试了不同的代码段,到目前为止,我能找到的最好的东西是: Sendkey模块也不能解决我的问题,因为它只允许您发送一次按键,而不发送按住键按下事件。我知道过autoit,它在过去使用过,但是我只是真的想知道python是否可行以及