如何解决是否有内置的模拟对象可传递给Python单元测试?
我通常在单元测试期间实例化一个Mock
对象。我讨厌:
- 必须键入
from unittest.mock import Mock
- 然后通过
Mock
实例化一个mock = Mock()
对象
我想知道pytest
,unittest.mock
,pytest-mock
等是否具有传递Mock
对象的内置方式?
这是我当前的工作流程:
from unittest.mock import Mock
def test_something() -> None:
mock = Mock()
mock.func()
mock.func.assert_called_once()
研究
我知道使用pytest-mock
,至少可以通过mocker
fixture解决导入问题。
def test_something(mocker) -> None:
mock = mocker.Mock()
mock.func()
mock.func.assert_called_once()
我希望能够做这样的事情:
def test_something(mock) -> None:
mock.func()
mock.func.assert_called_once()
解决方法
如果您使用的是let data = // here put your JSON
let results = []
data['results'].forEach(result =>{
data['users'].forEach(user => {
if(result.invited_user_id === user._id){
result.invited_user_id = user
results.push(result)
}
})
})
let finalData = {
'results': results
}
console.log(finalData)
,只需创建一个fixture。
pytest
否则,只需使用@pytest.fixture(scope="function")
def my_cool_mock():
mocked = Mock()
yield mocked
def test_something(my_cool_mock) -> None:
my_cool_mock.func()
my_cool_mock.func.assert_called_once()
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。