1

関数が文字列で呼び出されているかどうかを確認したいのですが、部分文字列を挿入するために '%s' を使用してその文字列が作成されている場合は違いがあるようです。テストは次のエラーで失敗しています:

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

文字列がどのように作成されたかに関係なく、「Hello world」でメソッドが呼び出されているかどうかを確認するにはどうすればよいですか?

4

2 に答える 2

1

Python には「書式付き文字列」のような型やクラスはありません。ただのひも。コードにエラーがあると思います。つまり、それはあなたのせいです。私はあなたがこのようにそれを呼び出そうとしているに違いない:

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

しかし、代わりに、

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

これにより、期待される結果が得られます。

于 2014-06-19T19:31:47.443 に答える
1

あなたがしているはずです

'Hello %s' % 'world'

役立つ一連のコンパレーターもあります。文字列の値が何であるかを気にしない場合は、次を呼び出しますmox.IsA(str)mox.StrContainsまたはmox.Regex、さらに検証することもできます。

于 2014-06-19T19:38:35.860 に答える