python - 如何使用 Python Mox 检查是否使用字符串的等效项调用方法?

标签 python mox

我想检查是否使用字符串调用函数 - 但是,如果使用“%s”创建该字符串来插入子字符串,似乎会有所不同。测试失败并出现以下错误:

UnexpectedMethodCallError: Unexpected method call.  unexpected:-  expected:+
- foo('Hello %s', 'world') -> None
?            ------
+ foo('Hello world') -> None

无论字符串是如何创建的,如何检查是否正在“Hello world”上调用该方法?

最佳答案

Python中没有像“格式化字符串”这样的类型或类。只是字符串。我认为你的代码有错误。我的意思是,这是你的错。 我打赌你会尝试这样调用它:

foo('Hello %s', 'world')

但你应该这样做

foo('Hello %s' % 'world')

这会给你预期的结果。

关于python - 如何使用 Python Mox 检查是否使用字符串的等效项调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314768/

相关文章:

python - 使用 pymox 模拟 urllib2.urlopen 和 lxml.etree.parse

python - TypeError : can't multiply sequence by non-int of type 'float' , 我无法弄清楚

python - 如何使用 Python 和 PIL 查找颜色相似的图像?

python - 如何检测 asyncio.StreamWriter.write 上关闭的套接字?

Python SQLAlchemy - 模拟模型属性的 "desc"方法

python - 如何使用 Mox 模拟模块函数并允许以几乎任何方式调用它

python - 返回响应代码 python HTTP header

python - 如何忽略列表中的高偏差

python - 使用 mox 模拟一个名为 by__init__ 的方法

python - 如何在没有签名检查的情况下模拟方法调用?