2015-06-09 3 views
0

Во время тестирования я получаю сообщение об ошибке, как утверждение нижеОшибка утверждения Python во время nosetest?

AssertionError: Фактические товары не в ожидаемом: [{ 'Инвалиды' Ложные, 'first_name': u'JAMES», 'substance_abuse': false, 'tobacco_use': False}]

Здесь ожидаемые значения равны фактическим. Если оба они одинаковы, почему они все еще ожидают?

+0

Какие изменения я должен исправить, эти AssertionError? –

+0

Ожидаемое: {u'handicapped ': False, u'substance_abuse': False} , даже если фактическое ---> Фактическое: {'инвалид': False, 'Substance_abuse': False} –

+0

Пожалуйста, посмотрите http : //stackoverflow.com/help/mcve – Railslide

ответ

0

«Фактические» данные имеют больше ключей, в которых ваш тест, по-видимому, не был написан, чтобы ожидать. Так что dicts не равно, даже если ожидается, действительный абзац фактического.

Если вы хотите, чтобы на выходе присутствовали только присутствующие клавиши, то у вас есть допустимый сбой теста.

Однако, если вы не против иметь «лишние» клавиши в фактическом выходе, тогда вы должны написать лучшее утверждение, например, используя unittest.TestCase.assertDictContainsSubset.

+0

AssertionError: Фактические ключи данных, не ожидаемые: set (['benefits', 'address']). Актуально: {'Substance_abuse': False, 'benefits': [], 'address': {'city': u'ram12 ',' line ': u'1 Street'}, 'disabled': False, 'member_id ': u'987654321', 'tobacco_use': False} Ожидаемое: {u'handicapped ': False, u'substance_abuse': False, u'contacts ': [], u'tobacco_use': False, u'member_id ' : u'987654321 '} –

+0

здесь все ожидаемые значения есть в действительности, тогда зачем это должно было вызвать ошибку утверждения? @ wim –