如何从返回类型为void的方法中抛出异常,使用Microsoft Fakes在VS 2013上

本文关键字:Microsoft 使用 Fakes 2013 VS 抛出异常 返回类型 void 方法 | 更新日期: 2023-09-27 17:50:43

我有以下代码,我正在进行单元测试。

    public static MyConfiguration GetConfig(string sectionName)
    {
        if (!Initialized)
        {
            try
            {
                InitializeEnv(); // Method is present but no implementation yet.
            }
            finally
            {
                Initialized = true;
                if (configurationReader == null)
                {
                    configurationReader = ConfigurationValueReader.ConfigurationReader();
                }
            }
        }
        return (MyConfiguration)configurationReader.ReadSection(sectionName, new MyConfigurationHandler());
    }

并且我想从InitializeEnv()方法抛出一个异常,该方法与上面使用shims或stub的方法在同一类中定义。这个方法InitializeEnv()目前在它内部没有实现来导致数据异常。是否有一种方法,我仍然可以抛出一个异常从该方法使用Shims或存根在这里?

如何从返回类型为void的方法中抛出异常,使用Microsoft Fakes在VS 2013上

能够加载它,但我需要添加一个ExpectedException属性到我的测试方法,因为Catch块不存在。

 ShimListenerConfiguration.InitializeEnv = () =>
            {
                throw new Exception();
            };