Assert.IsInstanceOfType не принимает тип в качестве аргумента - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь проверить, что некоторые объекты относятся к определенному типу:

 [TestInitialize]
        public void SetUp()
        {
            exam = new Exam(examId, name, date, templateId);

            tabViewModel = new TabControlViewModel(exam);

            tabs = new List<SingleTabViewModel>(tabViewModel.Tabs);

            // Not using this in the current code, but including here to make
            // clear the expected type of the tabs
            examsTab = tabs[0] as ExamsTabViewModel;
            compareTab = tabs[1] as CompareExamsTabViewModel;
            templatesTab = tabs[2] as TemplatesTabViewModel;
        }

        [TestMethod]
        public void TestTabTypes()
        {
            Assert.IsInstanceOfType(tabs[0], ExamsTabViewModel);
            Assert.IsInstanceOfType(tabs[1], CompareExamsTabViewModel);
            Assert.IsInstanceOfType(tabs[2], TemplatesTabViewModel);
        }

Но в утверждениях типы выдают ошибку:

'ExamsTabViewModel '- это тип, который недопустим в данном контексте.

Даже если подпись утверждения

void Assert.IsInstanceOfType (значение объекта, Type expectedType)

Почему это не работает?

Ответы [ 2 ]

3 голосов
/ 05 мая 2020

Вы хотите экземпляр класса Type, а не имя типа. Простой способ получить первое из второго - это typeof:

    [TestMethod]
    public void TestTabTypes()
    {
        Assert.IsInstanceOfType(tabs[0], typeof(ExamsTabViewModel));
        Assert.IsInstanceOfType(tabs[1], typeof(CompareExamsTabViewModel));
        Assert.IsInstanceOfType(tabs[2], typeof(TemplatesTabViewModel));
    }
0 голосов
/ 05 мая 2020

Попробуйте изменить свои утверждения на Assert.IsInstanceOfType(tabs[0], typeof(ExamsTabViewModel)), потому что вам нужно предоставить экземпляр Type, а не имя типа.

...