Sco*_*nce 5 c# mbunit nunit mstest xunit.net
以前没有编写单元测试框架,在我看来,如果程序集中的某些类型都需要针对类似的事情进行测试,那么可继承的Fact属性会使编写抽象测试类或测试接口变得更容易.
事实是否不可继承有设计理由吗?我认为使用属性来识别测试方法的其他测试框架(NUnit,MSTest,MbUnit等)也是类似的设计.我错过了什么?
这是xunit(版本1.9.1.1600)的FactAttribute的开头:
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class FactAttribute : Attribute
{
Run Code Online (Sandbox Code Playgroud)
我试图理解为什么它看起来不像以下那样:
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class FactAttribute : Attribute
{
Run Code Online (Sandbox Code Playgroud)
我从未听说过属性是可继承的,就像类一样。使用通用测试方法编写基类并将 [Fact] 属性应用于派生类中的方法,您应该没有问题。