【发布时间】:2014-03-05 13:53:48
【问题描述】:
我正在测试与第三方系统交互的服务。 API 公开的方法返回如下所示的对象:
public class Thing
{
public string Name { get {...} }
public string Description { get {...} }
public Thing(string someUri)
{
/* Do some secret internal stuff and
populate all my properties. */
}
}
我需要模拟这些属性,以便根据返回的对象测试我的服务是否正确运行。
对象是一个具体类的实例,它没有实现我可以模拟的任何接口。这些属性的支持字段在Thing 的构造函数中设置,它接受一个URI,然后在一些紧密耦合的第三方系统中获取对象,并可能直接设置支持字段。
所有这一切意味着我无法模拟属性 - 我无法直接设置它们,我无法模拟接口,也无法模拟构造函数依赖项并以这种方式设置属性(无论如何都会降低我的测试的用处)。
有没有办法解决这个问题?
【问题讨论】:
标签: c# unit-testing moq