如何使我的扩展忽略Moq? Moq.Interceptor不可序列化

时间:2011-02-10 20:54:10

标签: c# unit-testing serialization moq clone

我从这个序列化对象的 post (accepted answer code) 中获取了一个方法,以便我可以获得该对象的新副本。

现在我正在尝试进行单元测试,但每当我到达我想要克隆的对象时,它就会出现

  

Tests.ServiceLayer.TestTService.Test_Something:   System.Runtime.Serialization.SerializationException   :在程序集中键入“Moq.Interceptor”   'Moq,版本= 3.1.416.3,   文化=中性,   PublicKeyToken = 69f491c39445e920'是   没有标记为可序列化。

所以似乎我的模拟对象中有一些东西,克隆试图复制但不能。

我不确定如何告诉它忽略这些事情。我会嘲笑克隆,但我使用的扩展方法,我认为我不能嘲笑。

1 个答案:

答案 0 :(得分:0)

Moq创建的代理类不是Serializable,这就是为什么在这种情况下你不能使用Clone方法的原因。您必须使用其他内容替换模拟对象,或者尝试按照this blog post模拟扩展方法。