Документация довольно сложна для понимания:
TypoOf
- проверяет, является ли объект точным типом.
InstanceOf
-проверяет, что объект является экземпляром типа
. Это означает, что в отличие от TypoOf
, InstanceOf
будет проверять также на производные.
Итак, в следующем примере:
public class Foo
{
public Boo GetBoo()
{
return new Woo();
}
}
public class Woo : Boo { }
Метод теста:
[Test]
public void GetBoo_WhenCalled_ReturnBoo()
{
var foo = new Foo();
var result = foo.GetBoo();
Assert.that(result, Is.TypeOf<Boo>()); // False ("Boo")
Assert.that(result, Is.InstanceOf<Boo>()); //True ("Boo" or "Woo")
}
TypeOf
вернет false, потому что он проверит, является ли тип результата только Boo
.InstanceOf
вернет true, потому что он проверит, является ли тип результата Boo
или Woo
.