私は次のノーズテストを作成しました:
@nottest
def _test_validate_helper_eq(self, input, expected, *args, **kwargs):
result = testedObcject.validatePrice(input, *args, **kwargs)
eq_(result, expected)
def test_validate_price(self):
yield self._test_validate_helper_eq, {}, {'price':'0'}
yield self._test_validate_helper_eq, {}, {'price', -1}, 'price', -1`
validatePrice は、テスト対象の関数です。
def validatePrice(self, input, name = 'price', default_price=0):
...
return validated_input
関数を使用して 2 つのテストを生成するテスト ジェネレーターがあり_test_validate_helper_eqます。また_test_validate_helper_eq、関数はさまざまな数のパラメーターを取り、それをに渡しますvalidatePrice
最初のテストは PASS ですが、2 番目のテストには問題があります。ご覧のとおり、追加の 2 つのパラメーターnameとdefault_price. このテストは次のエラーで失敗します:AssertionError: {'price': u'-1'} != set(['price', -1])
expectedパラメータの値は、set私が定義した辞書の代わりであることがわかりました。*argsこの変換が鼻で行われたのか、それとも使用されたために行われたのかはわかりません**kwargs。
何が起こっているのか、それを修正する方法はありますか?