Типы утверждений .NET - PullRequest
       33

Типы утверждений .NET

7 голосов
/ 09 ноября 2010

Есть ли способ, которым вы можете утверждать, является ли переменная определенного типа?

Например:

AssertIsBoolean(variable);

Ответы [ 4 ]

7 голосов
/ 09 ноября 2010

Вы действительно пытаетесь утверждать, что переменная имеет определенный тип или что значение переменной имеет определенный тип?

Первый не должен быть частью модульного теста - это часть объявленного кода. Это все равно что пытаться выполнить модульное тестирование, когда нельзя вызывать метод с неправильными типами аргументов.

Второе можно легко сделать с помощью

Assert.IsTrue(value is bool);

(Предполагается, что value - это переменная типа object или интерфейс.)

Обратите внимание, что это будет проверять совместимость , а не точный тип. Если вы хотите проверить, что значение является точным типом, а не подтипом, вы можете использовать что-то вроде:

Assert.AreEqual(typeof(ArgumentException), ex.GetType());

(Конечно, для универсальных методов, которые вы используете, могут быть доступны опции для универсальных методов.)

1 голос
/ 09 ноября 2010
if(myValue is Boolean)
{

}
0 голосов
/ 10 ноября 2010

Вы не указываете, какую платформу тестирования вы используете. Поэтому я хотел бы отметить, что инфраструктура тестирования Gallio / MbUnit обеспечивает удобное утверждение для этой цели:

Assert.IsInstanceOfType<bool>(myValue);
0 голосов
/ 09 ноября 2010
Assert.IsTrue(variable is bool, "variable was not a Boolean Value");
...