2016-03-08 2 views
3

Это действительно странно, я пытаюсь утверждать, что две строки равны, и она терпит неудачу, хотя она выглядит одинаковой.Сравнение двух строковых утверждений с ошибкой

Assert.assertSame("Extra Spicy", type, "type is not extra spicy"); 

Я получаю эту ошибку: соответствует

java.lang.AssertionError: type is not extra spicy expected [Extra Spicy] but found [Extra Spicy]
Expected :Extra Spicy
Actual :Extra Spicy

Все, почему это неисправного?

+0

Вы используете JUnit? – Bunti

+0

im using testng –

+0

Я не слишком хорошо знаком с последней версией JUnit, но я считаю, что пользовательский аргумент сообщения «тип не лишний пряный» должен быть первым. Это правильно? – souldzin

ответ

5

Assert.assertSame использует оператор ==, который проверяет, что два объекта являются одним и тем же объектом (имеют одинаковую ссылку).

Я думаю, что вы хотите использовать Assert.assertEquals, который использует метод equals(), проверяя, если значения двух объекты равны или нет.

JUnit имеет некоторые очень полезные примеры на их GitHub:

https://github.com/junit-team/junit/wiki/Assertions

+0

спасибо ... по какой-то причине я думал, что это работает наоборот –

0

assertSame утверждает, что два объекта относятся к одному объекту. Если они не совпадают, то вызывается AssertionFailedError.

Вы также можете проверить равенство следующим

Assert.assertEquals("Extra Spicy", "type is not extra spicy"); 
Смежные вопросы