Mar*_*ann 11 .net moq autofixture
我需要创建一个具有两个具有相同名称的属性的类型,并且只在返回类型上有所不同.通过反射动态发射这种类型是完全可以接受的.
像这样的东西:
public TypeA Prop { get; }
public TypeB Prop { get; }
Run Code Online (Sandbox Code Playgroud)
我知道我不能从C#或VB.NET或许多其他.NET语言中使用这个属性.
为了防止答案向我解释为什么我不想这样做,让我解释一下为什么我需要它:我需要它来重现一个bug.
更具体地说,我在AutoFixture中有一个错误,其中一个类型的Moq会导致它在某些情况下抛出异常.问题是Moq发出的类型包含两个名为'Mock'的属性,它们仅在返回类型上有所不同.
我想在单元测试中重现这个场景,但是我不想仅仅因为这个原因而依赖于Moq,所以我想在测试套件内部重现这种行为.
Tho*_*que 14
您可以拥有2个具有相同名称的属性,这些属性仅因类型而异,您可以在不动态发出类型的情况下执行此操作:
class Foo
{
public string X
{
get { return "Hello world"; }
}
}
class Bar : Foo
{
public new int X
{
get { return 42; }
}
}
void Main()
{
foreach(PropertyInfo prop in typeof(Bar).GetProperties())
{
Console.WriteLine("{0} : {1}", prop.Name, prop.PropertyType);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码的输出将是:
X:System.Int32
X:System.String
| 归档时间: |
|
| 查看次数: |
255 次 |
| 最近记录: |