单元测试:对BundleTable.Bundles进行模拟

时间:2014-03-03 13:23:27

标签: c# asp.net-mvc rhino-mocks bundling-and-minification system.web.optimization

我正在尝试为创建的自定义帮助程序执行一些单元测试,以呈现包中包含的脚本。

我的问题是我需要为BundleTable.Bundles 对象创建一个模拟器,但我没有找到任何相关的方法来实现这一点。

我的方法如下:

public IEnumerable<string> GetBundleFilesCollection(string bundleUrl)
{
        bundleUrl = string.Concat("~", bundleUrl);
        var collection = new BundleCollection { BundleTable.Bundles.GetBundleFor(bundleUrl) };
        var bundleResolver = new BundleResolver(collection);
        IEnumerable<string> fileUrls = bundleResolver.GetBundleContents(bundleUrl);
        return fileUrls;
}

我是如何实现这一目标的?

我正在使用Rhino Mocks。

1 个答案:

答案 0 :(得分:1)

Bundles上的BundleTable属性是静态的,因此不可模拟(使用Rhino Mocks)。也许您可以使用满足测试要求的数据填充Bundles集合吗?

有些商业产品可以让你模拟/存根静态方法(我认为TypeMock Isolator允许这样做)。