正如我从单元测试的艺术中读到的,知道 .NET 可以隐藏用于在生产运行时进行测试的接缝方法。(第 78 页~第 80 页)。如,
public class LogAnalyzer
{
...
internal LogAnalyzer (IExtensionManager extentionMgr)
{
manager = extentionMgr;
}
}
像这样跑。
using System.Runtime.CompilerServices;
[assembly:
InternalsVisibleTo("AOUT.CH3.Logan.Tests")]
所以 LogAnalyzer() 只能为测试类调用,不用担心为了可测试性而在生产代码上增加额外的成本。经过简要调查,似乎 Java 没有等效的功能。但是Java有替代品吗?谢谢。