Implementing Unit Test MetaData using XtUnit custom attributes
Regarding my last post on xml comments used inside a unit test Here's how you can implement the same "metadata on a test" equivalent using XtUnit custom attributes (note that you need to inhering from a custom class for this):
using NUnit.Framework; using XtUnit.Framework.Internal; [TestFixture] public class CustomDataAttributes:TestFixtureBase { [Test] [Data("sql","Select * from categories")] public void useCustomDataAttributes() { string actual = DataAttribute.items["sql"]; string expected = "Select * from categories"; Assert.AreEqual(expected,actual); } } [AttributeUsage(AttributeTargets.Method)] class DataAttribute:ProcessingAttributeBase { private readonly string data = string.Empty; private readonly string name = string.Empty; public string Name {get { return name; }} public string Data { get { return data; } } public DataAttribute(string name, string data) { this.data = data; this.name = name; } public static readonly Dictionary<string, string> items = new Dictionary<string, string>(); public static Dictionary<string, string> Items {get { return items; } } protected override void OnPreProcess() { items[name] = data; } protected override void OnPostProcess() { } }