У меня есть модульное тестирование, что сделать следующее:DateTime сериализации отличается (SQL Server против .Net)
- Это создает экземпляр класса (MyObject).
- Он сериализует myObject с помощью SerializeObject (код ниже)
- Он отправляет объект в службу WCF, которая сохраняется в базе данных SQL Server. (ВСТАВИТЬ)
- Это resquests ФОС, чтобы получить объект (myObject2) (SELECT)
- Это Сериализует myObject2 с помощью SerializeObject
Он сравнивает, если сериализация равны.
public static string SerializeObject<T>(this T toSerialize) { XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType()); StringWriter textWriter = new StringWriter(); xmlSerializer.Serialize(textWriter, toSerialize); return textWriter.ToString(); }
Проблема в том, с поля даты и времени.
Ожидаемое (от UnitTest):
<dateField>2015-10-30T08:04:52.6115334-04:00</dateField>
Actual (от WCF):
<dateField>2015-10-30T08:04:52.613</dateField>
Как вы можете видеть, первое, кажется, проблема с точностью. Кроме того, DateTime
от Unit Test имеет в нем -04: 00.
Как я могу совместить эти две даты?
Вы понимаете, что WCF имеет для вас всю сериализацию/десериализацию? Нет никакой необходимости катить свое решение. – Jamiec
@Jamiec, это ТЕСТ ДЛЯ УСТАНОВКИ. Я делаю это, чтобы убедиться, что объект, отправленный в WCF, сохраняется в базе данных и возвращается на стороне клиента с точно такими же значениями. – Baral
Если его тестирование от конца до конца, как будто это не модуль, проверьте его интеграционный тест. Но теперь я раскалываю волосы;) – Jamiec