3

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

4

3 回答 3

3

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

于 2013-02-04T21:23:07.560 回答
3

你可以在你的方面有一个静态标志来打开/关闭它并检查你的方面实现中标志的状态。

然后在您的单元测试设置中,只需关闭静态标志。

例如

    public static bool On = true;

...

    public override void OnInvoke(MethodInterceptionArgs args)
    {
        if (!CacheAttribute.On)
        {
            args.ReturnValue = args.Invoke(args.Arguments);
        }
于 2015-12-18T15:56:52.550 回答
0

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

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

这使您可以控制使用方面的测试以及不使用方面的测试,从而使您可以测试方法本身并应用建议。

大概会有与其他模拟框架类似的机制

于 2014-03-25T05:30:10.243 回答