Как получить полное тестовое покрытие для одноэлементного класса с помощью dotCover - PullRequest
0 голосов
/ 08 мая 2020

Я использую dotCover и Jetbrains Rider. У меня проблема с тестовым покрытием. Учитывая следующий класс. Я не могу получить полное тестовое покрытие в классе. dotCover указывает, что свойство Settings и свойство Item, соответствующее частному индексатору, имеют покрытие 0%. Я получаю покрытие по методу publi c Env, который, в свою очередь, запускает остальную часть кода.

 public class SettingsManager
 {
    private static SettingsManager _instance;
    private readonly JObject _secrets;
    private const string FileName = "appsettings.json";

    private SettingsManager()
    {
        using (var reader = new StreamReader(FileName))
        {
            var json = reader.ReadToEnd();
            _secrets = JObject.Parse(json);
        }
    }

    private static AppSettingsManager Settings => _instance ?? (_instance = new SettingsManager());

    public static string Env(string name)
    {
        return Settings["env" + ":" + name];
    }

    private string this[string name]
    {
        get
        {
            var path = name.Split(':');
            var node = _secrets[path[0]];
            for (var index = 1; index < path.Length; index++)
            {
                node = node[path[index]];
            }

            return node.ToString();
        }
    }
 }

Почему это происходит и как это исправить, чтобы получить полное тестовое покрытие на класс?

...