【发布时间】:2016-07-25 14:31:43
【问题描述】:
为了简化测试,我将Resharper source template 放在一起以快速创建一个替换为NSubstitute 的类。
[SourceTemplate]
public static void substitute<T>(this T o,
[Macro(Expression = "guessExpectedType()", Editable = -1)] string type)
where T : class
{
//$ o = Substitute.For<$type$>();
}
假设已经定义了一个字段 private ILogger logger;,这让我可以输入 logger.sub(Resharper 建议从那里获得完整的方法名称)来生成 logger = Substitute.For<ILogger>();。
我还有两个问题我无法弄清楚。
1) 有时它会在被替换的代码之前放置一个空语句,即
;
logger = Substitute.For<ILogger>();
每当替换行下方有语句时,这似乎就会发生。 Resharper 然后会建议可以删除空语句。为什么要添加它,我该如何防止它?
2) 如果 NSubstitute 已经为该类导入 (using NSubstitute;),它只会正确猜测替代类型。没有它,我会收到logger = Substitute.For<object>(); 和导入 NSubstitute 的建议。是否有更好的宏表达式来解析字段类型?或者,如果尚未导入命名空间,有没有办法让它导入命名空间?
【问题讨论】:
标签: c# resharper nsubstitute