Почему сбой Assert.IsInstanceOfType (0.GetType (), typeof (int))? - PullRequest
44 голосов
/ 26 марта 2009

Я новичок в модульном тестировании, использую Microsoft.VisualStudio.TestTools.UnitTesting;

0.GetType() на самом деле System.RuntimeType, так какой тип теста мне нужно написать, чтобы пройти Assert.IsInstanceOfType(0.GetType(), typeof(int))?

--- после, это моя собственная ошибка пользователя ... Assert.IsInstanceOfType(0, typeof(int))

Ответы [ 2 ]

74 голосов
/ 26 марта 2009

Измените вызов на следующий

Assert.IsInstanceOfType(0, typeof(int));

Первый параметр - это проверяемый объект, а не тип проверяемого объекта. передавая 0.GetType (), вы говорили, что «RunTimeType» экземпляр System.int, который является ложным. Под прикрытием этот вызов просто разрешается до

if (typeof(int).IsInstanceOfType(0))
18 голосов
/ 26 марта 2009

Похоже, что должно быть

Assert.IsInstanceOfType(0, typeof(int))

Ваше выражение в настоящее время оценивает, является ли RunTimeType экземпляром RunTimeType, а это не так.

...