C# NUnit中的TypeOf和InstanceOf有什么区别?
在C# NUnit中的TypeOf和InstanceOf有什么区别?,c#,nunit,C#,Nunit,在NUnit中,是.TypeOf和是.InstanceOf之间的区别是什么 在下面的示例中,我注意到它们都返回true: public class Foo { public Boo GetBoo() { return new Boo(); } } public class Boo { } 以及NUnit试验方法: [Test] public void GetBoo_WhenCalled_ReturnBoo { var foo = new Foo
NUnit
中,是.TypeOf
和是.InstanceOf
之间的区别是什么
在下面的示例中,我注意到它们都返回true:
public class Foo
{
public Boo GetBoo()
{
return new Boo();
}
}
public class Boo { }
以及NUnit
试验方法:
[Test]
public void GetBoo_WhenCalled_ReturnBoo
{
var foo = new Foo();
var result = foo.GetBoo();
Assert.That(result, Is.TypeOf<Boo>()); //return true
Assert.That(result, Is.InstanceOf<Boo>()); //return true
}
[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")
}
[测试]
公共无效GetBoo\u调用时返回Boo
{
var foo=new foo();
var result=foo.GetBoo();
Assert.That(result,Is.TypeOf());//返回true
Assert.That(result,Is.InstanceOf());//返回true
}
这有点难以理解:
typof
-测试对象是否为精确类型
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>()); //return true
Assert.That(result, Is.InstanceOf<Boo>()); //return true
}
[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")
}
[测试]
public void GetBoo_when called_ReturnBoo()
{
var foo=new foo();
var result=foo.GetBoo();
Assert.that(result,Is.TypeOf());//False(“Boo”)
Assert.that(result,Is.InstanceOf());//True(“Boo”或“Woo”)
}
TypeOf
将返回false,因为它只检查结果类型是否为Boo
。
InstanceOf
将返回true,因为它会检查结果类型是否为Boo
或Woo
回答得很好,但您指向文档的链接是传统NUnit 2.4文档。你能更新吗?如果你知道地址是我的客人,我会尝试更新链接。新文档位于,如果不删除你写的很多内容,我就无法将其放入你的帖子中。