Строка Дата Сравнить
В тесте BDD я сравниваю даты. При сравнении даты в строках. Даже если обе даты совпадают, я получаю это сообщение, и тест не проходит
Ожидаемый объект: "20.01.2012 12:00:00 AM", но обнаружен "20.01.2012 12:00:00 AM".
Еще одна вещь, это происходит только в моей системе. Если я попрошу другого разработчика запустить тест, тест пройдет нормально. Есть ли настройка какого-то типа, которую мне не хватает?
Кодовая часть этого
customer["DateOfBirth"].Should().Be(Helper.DateOfBirth.ToString());
Где клиент хеш-таблица. это конкретное утверждение проходит нормально на других машинах, но не на моих.
Я знаю, что могу это исправить, изменив сравнение по дате вместо сравнения строк. Но мне было любопытно, так как это нормально на других машинах.
2 ответа
В тесте BDD я сравниваю даты. При сравнении даты в строках.
Это звучит как ваша проблема тогда. Я предполагаю, что вы сравниваете дату, отформатированную в культуре по умолчанию, с датой, отформатированной вручную в другой культуре.
Решение состоит в том, чтобы выполнить сравнение с DateTime
значения вместо того, чтобы полагаться на форматированные значения. Разрешить исполнителю теста форматировать оба значения, если они отличаются.
Даты форматируются по-разному - один имеет ведущий 0.
Вы должны либо отформатировать их одинаково, либо просто сравнить фактические DateTime
значения напрямую.