NUnit Утверждают. Равняется тому, Что я пропускаю?

Вы также можете использовать 9-дорожку для выполнения своей работы. Создайте его так, чтобы цветной пиксель не умножался по высоте, а только был прозрачным пикселем.

10
задан bleevo 6 July 2009 в 03:45
поделиться

4 ответа

Вы определенно верны. Ранее сегодня я боролся с аналогичной проблемой , пока не нашел ваше сообщение и теперь не уверен, что NUnit IsEqualTo () не вызывает постоянно предоставленные переопределения Equals.

Я говорю последовательно, потому что иногда это так. Собственно у меня два класса. Второй произошел от первого. Когда я вызываю Is.EqualTo () для экземпляров первого, NUnit вызывает переопределения Equals, для экземпляров второго он этого не делает.

Хотя это очень странно, у меня нет времени на дальнейшее изучение того, что происходит .

Людям с похожими проблемами или решениями обязательно стоит публиковать сообщения об этом, так как это очень раздражает и заставляет меня усомниться в достоверности моих тестов.

Тем временем я создал следующий класс Affirm, который вызывает Равно перекрывает точно (я это проверил).

4
ответ дан 3 December 2019 в 21:22
поделиться

Use Assert.AreEqual(a, b) for value types, Assert.AreSame(a, b) for reference types. http://www.nunit.org/index.php?p=identityAsserts&r=2.2.7

8
ответ дан 3 December 2019 в 21:22
поделиться

Некоторые структуры позволяют равенству работать иначе до присвоения идентификатора (т. Е. Сущность не сохраняется), чем afterwarsd, когда ясно, что намерение состоит в том, что идентификатор сущности является единственной основой для качественный. Вы используете какую-то структуру или Entity - ваш собственный класс?

Если это ваш собственный класс, можете ли вы показать суть своей логики Equals ()?

Ура, Berryl

FYI Assert.AreSame НИКОГДА не является тестом для проверки вашей реализации IEquatable! См. ReferenceEquals в справочном документе, чтобы лучше понять это утверждение.

3
ответ дан 3 December 2019 в 21:22
поделиться

It should work (see this related question) if the Equals method was overridden correctly. Could it be a problem with your Equals method (although if it simply consists of int comparison I would think not)? Might be worth setting a break point in your Equals method and then running the test to see what's going on behind the scenes.

1
ответ дан 3 December 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: