草庐IT

python - 如何在 django 中模拟用户和请求

我有与请求对象或用户对象交互的django代码。例如:foo_model_instance=models.get_or_create_foo_from_user(request.user)如果您要使用djangopythonshell或在单元测试中进行测试,您会在其中传递什么?这里只需一个User对象就可以了,但对模拟请求对象的需求也经常出现。对于外壳或单元测试:如何模拟用户?如何模拟请求? 最佳答案 对于请求,我会使用RequestFactory包含在Django中。fromdjango.test.clientimportRequ

python - 如何在 django 中模拟用户和请求

我有与请求对象或用户对象交互的django代码。例如:foo_model_instance=models.get_or_create_foo_from_user(request.user)如果您要使用djangopythonshell或在单元测试中进行测试,您会在其中传递什么?这里只需一个User对象就可以了,但对模拟请求对象的需求也经常出现。对于外壳或单元测试:如何模拟用户?如何模拟请求? 最佳答案 对于请求,我会使用RequestFactory包含在Django中。fromdjango.test.clientimportRequ

python - 一个模拟/ stub python 模块如何像 urllib

我需要测试一个需要使用urllib.urlopen查询外部服务器上的页面的函数(它也使用urllib.urlencode)。服务器可能已关闭,页面可能会更改;我不能依赖它进行测试。控制urllib.urlopen返回什么的最佳方法是什么? 最佳答案 另一种简单的方法是让您的测试覆盖urllib的urlopen()函数。例如,如果您的模块有importurllibdefsome_function_that_uses_urllib():...urllib.urlopen()...你可以这样定义你的测试:importmymoduledef

python - 一个模拟/ stub python 模块如何像 urllib

我需要测试一个需要使用urllib.urlopen查询外部服务器上的页面的函数(它也使用urllib.urlencode)。服务器可能已关闭,页面可能会更改;我不能依赖它进行测试。控制urllib.urlopen返回什么的最佳方法是什么? 最佳答案 另一种简单的方法是让您的测试覆盖urllib的urlopen()函数。例如,如果您的模块有importurllibdefsome_function_that_uses_urllib():...urllib.urlopen()...你可以这样定义你的测试:importmymoduledef

python - 如何用模拟模拟只读属性?

如何使用mock模拟只读属性?我试过了:setattr(obj.__class__,'property_to_be_mocked',mock.Mock())但问题是它随后适用于该类的所有实例......这打破了我的测试。你还有什么想法吗?我不想模拟整个对象,只模拟这个特定的属性。 最佳答案 我认为更好的方法是将属性模拟为PropertyMock,而不是直接模拟__get__方法。在documentation中有说明,搜索unittest.mock.PropertyMock:旨在用作类的属性或其他描述符的模拟。PropertyMock

python - 如何用模拟模拟只读属性?

如何使用mock模拟只读属性?我试过了:setattr(obj.__class__,'property_to_be_mocked',mock.Mock())但问题是它随后适用于该类的所有实例......这打破了我的测试。你还有什么想法吗?我不想模拟整个对象,只模拟这个特定的属性。 最佳答案 我认为更好的方法是将属性模拟为PropertyMock,而不是直接模拟__get__方法。在documentation中有说明,搜索unittest.mock.PropertyMock:旨在用作类的属性或其他描述符的模拟。PropertyMock

python - 模拟函数以引发异常以测试 except block

我有一个函数(foo),它调用另一个函数(bar)。如果调用bar()引发了HttpError,如果状态码是404我想特别处理,否则重新引发。我正在尝试围绕这个foo函数编写一些单元测试,模拟对bar()的调用。不幸的是,我无法获得对bar()的模拟调用来引发我的exceptblock捕获的异常。这是说明我的问题的代码:importunittestimportmockfromapiclient.errorsimportHttpErrorclassFooTests(unittest.TestCase):@mock.patch('my_tests.bar')deftest_foo_shou

python - 模拟函数以引发异常以测试 except block

我有一个函数(foo),它调用另一个函数(bar)。如果调用bar()引发了HttpError,如果状态码是404我想特别处理,否则重新引发。我正在尝试围绕这个foo函数编写一些单元测试,模拟对bar()的调用。不幸的是,我无法获得对bar()的模拟调用来引发我的exceptblock捕获的异常。这是说明我的问题的代码:importunittestimportmockfromapiclient.errorsimportHttpErrorclassFooTests(unittest.TestCase):@mock.patch('my_tests.bar')deftest_foo_shou

python - 你最喜欢的 Python 模拟库是什么?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.你最喜欢的Python模拟库是什么? 最佳答案 我只使用过一个,但我使用MichaelFoord的Mock取得了不错的效果:http://www.voidspace.org.uk/python/mock/.Michael的介绍比我说得好:TherearealreadyseveralPythonmo

python - 你最喜欢的 Python 模拟库是什么?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前.你最喜欢的Python模拟库是什么? 最佳答案 我只使用过一个,但我使用MichaelFoord的Mock取得了不错的效果:http://www.voidspace.org.uk/python/mock/.Michael的介绍比我说得好:TherearealreadyseveralPythonmo