例如:
[TestFixtureSetUp]
public void Init()
{
GetTestRepo(false);
}
[TestFixtureSetUp] 在这个例子中,它是做什么的?根据我的经验,[] 通常指的是列表。
最佳答案
Attributes .它们是通往 add metadata 的途径关于 inspection at runtime 的方法/属性/接口(interface)/类/命名空间.
您的示例添加了 TestFixtureSetUpAttribute到一个方法。这允许测试运行器在设置文本夹具时确定要运行类中的哪个方法。
测试运行器在运行时将您的测试程序集加载到内存中。然后它会枚举在您的程序集中定义的类,这些类已标记有特定属性(无论 NUnit 使用什么来标记测试类)。运行器现在知道要实例化哪些类来运行测试。然后它会在类中定义的方法中查找将要运行以设置测试夹具的方法。它在每个方法中搜索您询问的属性。一旦找到该方法,它就会知道在运行测试/每个测试之前运行该方法(无论它在 NUnit 中意味着什么)。
属性都是关于添加有关您可以在运行时搜索的方法的信息。在这种情况下,如果您不需要它们,您就不会错过它们,但是当您确实需要它们时,OMFG,它们可用真是太好了。
(在 C# 中,您可以从类型名称中省略“Attribute”。编译器知道您在谈论,例如,当您说 [Serializable]
时,“SerializableAttribute”)
关于c# - C#中的[]是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239263/