Python 为什么可以';t mock.call()接受自我为夸克? 背景

Python 为什么可以';t mock.call()接受自我为夸克? 背景,python,unit-testing,mocking,keyword-argument,Python,Unit Testing,Mocking,Keyword Argument,在python模拟中,有一种方法可以验证用于调用函数的参数顺序。它有一个帮助验证参数的函数 问题 使用call(),您不能将self作为kwarg传递。它给出了错误:TypeError:\uuuu call\uuuu()为参数“self”获取了多个值。。为什么?解决方法就是不要把self当作夸克,但我恐怕有一些基本的东西我误解了,在文档中找不到任何指向它的东西 实时代码 下面的代码粘贴在此处供您使用: 粘贴代码 文件1:test\u class.py 需要是一个单独的文件才能发现mock.pat

在python模拟中,有一种方法可以验证用于调用函数的参数顺序。它有一个帮助验证参数的函数

问题 使用
call()
,您不能将
self
作为kwarg传递。它给出了错误:
TypeError:\uuuu call\uuuu()为参数“self”获取了多个值。
。为什么?解决方法就是不要把self当作夸克,但我恐怕有一些基本的东西我误解了,在文档中找不到任何指向它的东西

实时代码 下面的代码粘贴在此处供您使用:

粘贴代码 文件1:
test\u class.py
需要是一个单独的文件才能发现mock.patch decorator

类:
定义函数(self,num):
返回数
班级跑步者:
def运行(自):
返回类().func(1)
文件2:
test.py
导入模拟
导入测试类
unmockedFunction=test_class.class.func
课堂测试:
@mock.patch('test_class.class.func',autospec=True)
def测试(自我、模拟):
#让模拟人什么也不做
mocker.side_effect=未修改的功能
#运行函数
test_class.Runner().run()类
#这很有效
用(self=mock.ANY,num=1)调用mocker.assert\u
#这很有效
mocker.assert\u有\u个调用([
mock.call(mock.ANY,num=1)
])
#这失败了
mocker.assert\u有\u个调用([
mock.call(self=mock.ANY,num=1)
])
Test().Test_me()