python - 检查模拟方法的类对象

标签 python testing mocking

我正在编写一个函数测试,该函数使用数据帧的 to_sql() 方法将 pandas 数据帧发送到 sql 数据库。

为了避免实际发送任何内容,我使用 mock.patch('pandas.DataFrame.to_sql') 模拟该方法。

我想在调用 to_sql() 时查看数据帧的状态。有没有办法使用模拟来做到这一点?即,它是否知道调用模拟函数的对象?

我正在测试的函数目前没有返回任何东西。是否有必要检查数据框?例如。 to_sql() 调用后返回数据帧?除了进行此测试外,我不需要任何返回值,因此如果可能,我更喜欢其他方式。

最佳答案

我遇到了同样的问题,解决方案是这样的:

@mock.patch('pandas.DataFrame.to_sql', return_value=mock.MagicMock())
def test_method(self: my_to_sql_mock):
  #your code...

希望对你有用

关于python - 检查模拟方法的类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55297148/

相关文章:

python - 在类属性更改时调用 Python 方法

python - 清理 matplotlib imshow 中好数据和坏数据之间的模糊边界

debugging - 当我在 Gradle 中运行单个测试时,如何获得详细的日志记录?

Python 3 单元测试无法模拟函数内部使用的方法

ruby - 复制 Ruby 类有什么用吗? (我正在做粗俗的 mock 。)

python - r'string'和python中的普通 'string'有什么区别?

python - Beautiful Soup - 在带有字符串的标签中找到标签?第 n 个 child ?

java - Mockito 调用监听器确定源

testing - 在 Hudson 中使用多个代理进行自动测试

java - 如何在 JUnit 中模拟 ERP 系统