如何模拟没有接口的方法?

时间:2012-02-08 22:26:29

标签: c# asp.net-mvc nunit moq

在我的控制器动作中我正在做:

string a = Url.Action(...);

我正在使用nunit和Moq(和Mvc 2)

如何将调用存根到Url.Action以返回一些字符串?

2 个答案:

答案 0 :(得分:2)

你不能模拟没有带Moq的默认构造函数的具体类(我假设Url是UrlHelper的实例)。你有两个选择:

(1)查看Moles作为替代/补充模拟框架

(2)为实现接口的UrlHelper方法编写一个包装类,然后可以模拟客户端的包装器。

答案 1 :(得分:0)

你做不到。 UrlHeler.Action不是虚拟的,所以你不能用Moq来存根。

但是,您可以在控制器中创建虚拟方法。并在测试中替换/覆盖它的实现。

相关问题