我想检查是否正在使用字符串调用函数-然而,如果该字符串使用'%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')
你应该做
'Hello %s' % 'world'
还有一系列的比较器可以帮助您。如果您不关心字符串的值是什么,那么调用:mox.IsA(str)
。您也可以执行mox.StrContains
或mox.Regex
来进一步验证。