Тесты носа, запутанные временным объектом
Следующая функция:
def test_1():
assert str(squishtest.object.properties(squishtest.waitForObject(":my_button"))["text"]) == "Another button"
дает:
AssertionError:
>> assert str(<module 'squish' from '.../squishtest.so'>.object.properties(<module 'squish' from '.../squishtest.so'>.waitForObject(":my_button"))["text"]) == "Another button"
что не дает мне никакой информации относительно того, какой текст на самом деле содержит кнопка.
Однако это работает лучше:
def test_2():
s = str(squishtest.object.properties(squishtest.waitForObject(":my_button"))["text"])
assert s == "Another button"
как это дает:
AssertionError:
'My button' = str(<module 'squish' from '.../squishtest.so'>.object.properties(<module 'squish' from '.../squishtest.so'>.waitForObject(":startVentButton_Button"))["text"])
>> assert 'My button' == "Another button"
В чем здесь проблема? Есть ли более хорошее решение, чем выбранное мной во втором примере?
Я запускаю тесты носа с установленным флагом -d.
1 ответ
Обычно вы бы использовали что-то вроде этого:
assert a == b, “%r != %r” % (a, b)
Но подождите, у носа есть сокращение, подобное этому: from nose.tools import eq_
Так что для вашего случая у вас будет:
eq_(str(very_obscure_obj["text"]), "Another button")