Art of unit test から読んだように、.NET はプロダクション ランタイムでテストするための seam メソッドを隠すことができることを知っています。(p.78~p.80)。そのような、
public class LogAnalyzer
{
...
internal LogAnalyzer (IExtensionManager extentionMgr)
{
manager = extentionMgr;
}
}
このように実行します。
using System.Runtime.CompilerServices;
[assembly:
InternalsVisibleTo("AOUT.CH3.Logan.Tests")]
そのため、LogAnalyzer() はテストクラスに対してのみ呼び出すことができ、テスト容易性のために実稼働コードに余分なコストを追加する心配はありません。簡単な調査の結果、Java には同等の機能がないようです。しかし、Javaには代替手段がありますか? ありがとう。