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

时间:2014-06-19 19:26:34

标签: python mox

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

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

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

2 个答案:

答案 0 :(得分:1)

没有类型和类似#34;格式化的字符串"在python中。只是字符串。我认为你的代码中有错误。我的意思是,这是你的错。 我打赌你试图这样称呼它:

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

但你应该做

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

这会给你预期的结果。

答案 1 :(得分:1)

你应该这样做

'Hello %s' % 'world'

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