有可能模拟自定义属性c#?

时间:2014-10-23 12:45:04

标签: c# unit-testing mocking

可以模拟自定义属性c#?

例如:

[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] 
public class YourAttribute : Attribute
{
}

[Your]
public void MyMethod()
{
   //something
}

我想测试MyMethod,但我需要模拟属性Your。

1 个答案:

答案 0 :(得分:1)

是的,您可以通过TypeDescriptor向实例或类型添加属性;以下示例使用Moq,但它可以应用于其他地方。

var mock = new Mock<IMyInterface>();

var attribute = new YourAttribute();

TypeDescriptor.AddAttributes(mock.Object, attribute);