【问题标题】:Resharper challenge: Using .Mock().Return() instead of setters and vice versaResharper 挑战:使用 .Mock().Return() 而不是 setter,反之亦然
【发布时间】:2012-07-06 13:17:58
【问题描述】:

我经常遇到一个问题,这与 Rhino Mocks 强制您在可用时使用 setter 而不是模拟(反之亦然)的方式有关。

例如:

var foo = MockRepository.GenerateStub<IFoo>();

// Valid only if Bar has a setter (of course, otherwise it wouldn't compile)
foo.Bar = new Bar(); 

// Valid only if Bar does not have a setter (less obvious, as this will compile)
foo.Stub(x => x.Bar).Return(new Bar());

处理这些问题确实很麻烦,尤其是在进行重构时。

所以我的问题是,任何人都可以想出一种自定义 Resharper/Visual Studio 快捷方式的好方法,让我可以快速从一个转换到另一个吗?

【问题讨论】:

    标签: visual-studio resharper rhino-mocks


    【解决方案1】:

    回答我自己的问题 - 自定义检查模式可以帮助解决这个问题。

    搜索模式是: $object$.$property$ = $value$;

    替换模式是: $object$.Stub(x => x.$property$).Return($value$);

    $object$ 和 $value$ 都是表达式占位符,$property$ 是标识符占位符。

    不幸的是,因为这是一个代码检查,它始终可见,导致整个代码库出现绿色曲线。

    【讨论】:

    • 是的,但是你不能使用快捷方式执行它。
    • 啊当然。你能把它设置为提示(所以你得到的只是最微弱的虚线下划线)吗?
    • 是的,这就是我所做的——当我想使用它时,很容易将其设置为“提示”,然后当我不再需要它时将其设置回“不显示” .
    猜你喜欢
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    相关资源
    最近更新 更多