如何在运行单元测试时禁用PostSharp?

时间:2013-02-04 16:58:06

标签: c# unit-testing nunit aop postsharp

我希望我的nunit测试不应用任何PostSharp方面,所以我可以单独测试我的方法。这可以在测试夹具设置中以某种方式完成,还是只能在每个项目级别完成?

3 个答案:

答案 0 :(得分:3)

您可以在测试版本中设置“SkipPostSharp”标志,以便它不会首先编译到您的二进制文件中。

答案 1 :(得分:3)

您可以在方面上设置静态标志,以打开/关闭它,并检查方面实施中的标志状态。

然后在你的单元测试设置中关闭静态标志。

e.g。

    public static bool On = true;

...

    public override void OnInvoke(MethodInterceptionArgs args)
    {
        if (!CacheAttribute.On)
        {
            args.ReturnValue = args.Invoke(args.Arguments);
        }

答案 2 :(得分:0)

如果您在单元测试中使用Typemock,则可以使用类似

的内容
MyAspect myAspectMock = Isolate.Fake.Instance<MyAspect>(Members.MustSpecifyReturnValues);
Isolate.Swap.AllInstances<MyAspect>().With(myAspectMock);

这允许您控制使用方面的测试,以及哪些测试没有,允许您测试方法本身,并应用建议。

可能会有与其他模拟框架类似的机制