我想知道 Microsoft fake 框架中提供的 shim 功能是否有任何替代库,因为它仅在最终版本中受支持?
问问题
5701 次
4 回答
5
Prig 尚未更新以与 VS 2017 一起使用,但Pose确实如此,并且非常适合我需要它的用途(基本的 shiming 和类似的Environment.UserName
)DateTime.Now
,并且具有非常好的界面:
// Create shims. They only apply within this isolate block.
var dateTimeShim = Shim.Replace(() => DateTime.Now)
.With(() => new DateTime(2010, 1, 1));
var usernameShim = Shim.Replace(() => Environment.UserName)
.With(() => "john.wick");
// Shims are only active within an Isolate block - and you
// have to pass all shims you want to be active.
PoseContext.Isolate(() =>
{
// Run your test - shims are active at this point.
RunTest();
}, dateTimeShim, usernameShim);
编辑
我应该注意到,在进行相当基本的测试时会遇到很多错误——非常可怕的错误,例如“公共语言运行时检测到无效程序。”和“JIT 编译器遇到内部限制”。所以告诫购买者。
于 2018-03-25T22:12:28.850 回答
0
一个开源替代方案是Prig。获得 MIT 许可且仍处于活动状态 - 但与 VS IDE 相比略有落后
于 2018-02-06T10:36:33.337 回答
-2
是的,详细比较请看这里:
正如您将从 Jim Cooper 的回答中了解到的那样,假程序集实际上是一件坏事,并且有更好的选择,例如支持重构并且需要更少的代码(使用泛型)。
于 2014-05-01T12:09:27.053 回答