如何使用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')

你应该做

'Hello %s' % 'world'

还有一系列的比较器可以帮助您。如果您不关心字符串的值是什么,那么调用:mox.IsA(str)。您也可以执行mox.StrContainsmox.Regex来进一步验证。

相关内容

  • 没有找到相关文章