将填充程序添加到静态方法

时间:2017-06-22 16:48:51

标签: c# unit-testing shim

我已经获得了一些遗留代码来添加单元测试。我可以在必要时为需要实例化的类添加填充程序,但是一些代码使用静态类。我无法正确添加垫片。

例如(为简洁起见而简化):

public static class DBHelper
    {
        public static ObservableCollection<Run> GetRuns()
        {
            ObservableCollection<Run> retval = new ObservableCollection<Run>();

            using (AriaEntities DBC = new AriaEntities())
            {
                var res = DBC.Runs.OrderByDescending(x => x.Run_Number).Take(100).ToList();

                retval = new ObservableCollection<Run>(res);
            }

            return retval;
        }
    }

我想要使用这种方法。如果它不是静态的,我会使用:

 using (ShimsContext.Create())
 {
      ShimDBHelper.AllInstances.GetRuns = (i) => { return FakeRunList(); };

      ...
 }

但是静态的我得到了&#34;&#39; DBHelper&#39;:静态类型不能用作参数&#34;。如果我删除参数,我会被告知委托不接受0参数。

什么是静态类的语法,如果有的话?

0 个答案:

没有答案