我可以更改测试中所有垫片的默认行为吗?
本文关键字:默认 测试 我可以 | 更新日期: 2023-09-27 18:03:04
我目前正在使用Microsoft Fakes框架编写单元测试。我注意到,如果我不为给定的属性提供委托,则返回默认值。然而,当初始化我的shim时,我将此行为更改为notimented。
var myShim = new ShimMyClass
{
InstanceBehavior = ShimBehaviors.NotImplemented
}
这是我定义的所有垫片的给定行为。我希望能够在更全局的层面上设置这个默认值,而不是必须记住为我创建的每个shim都这样做。这可能吗?
根据文档,下面的代码片段可以帮助您:
using (ShimsContext.Create())
{
ShimBehaviors.Current = ShimBehaviors.NotImplemented;
var myShim = new ShimMyClass
{
...
}
}
然而,它不工作在我的机器与VS2012。
创建一个类,作为您编写的所有脚本的父类。在这个类中有一个
protected static ShimBehavior Default = ShimBehavior.NotImplemented;
然后创建构造函数:
public ShimSuperClass
{
InstanceBehavior = Default
}
确保在所有子类中调用base()构造函数