我有一个单元测试,请执行下列操作:日期时间序列化不同(SQL服务器VS .NET)
- 它创建一个类(myObject的)的一个实例。
- 它使用SerializeObject序列化myObject(代码如下)
- 它将对象发送到WCF服务,该服务将对象保留到SQL Server数据库。 (INSERT)
- 它resquests的WCF来获取对象(myObject2)(任选)
- 其序列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(); }
问题是与日期时间字段。
(从单元测试)预计:
<dateField>2015-10-30T08:04:52.6115334-04:00</dateField>
实际(从WCF):
<dateField>2015-10-30T08:04:52.613</dateField>
正如你所看到的,第一似乎与精度的问题。此外,单元测试的DateTime
其中有-04:00。
我怎样才能让这两个日期匹配?
你知道WCF为你处理所有的序列化/反序列化吗?没有必要推出自己的解决方案。 – Jamiec 2014-10-30 12:18:41
@Jamiec,这是一个单位测试。我这样做是为了确保发送到WCF的对象被持久化到数据库,并在客户端返回完全相同的值。 – Baral 2014-10-30 12:33:09
如果它的端到端测试就像它不是单元测试它的集成测试一样。但现在我正在分裂头发;) – Jamiec 2014-10-30 12:58:06