2016-10-12 5 views
1

@Testedは内部的にクラスオブジェクトをインスタンス化します。しかし、シングルトンクラスの場合、@Testedは内部的にインスタンスを作成します。これは、シングルトンのプライベートコンストラクタが存在するためです。@Testedは内部的にシングルトンクラスのオブジェクトを作成しますか?

+0

JMockitには、Deencapsulatedクラスが付属しているため、プライベートメソッドとコンストラクタを呼び出すことができます。私はここで同様のことが起こると期待しています。 – dcsohl

答えて

0

プライベートコンストラクタ(またはフィールド、メソッドなど)は、常にReflectionによって実行/アクセスできます。

@Testedを使用すると、コンストラクタのアクセシビリティに関係なくインスタンスが作成されます。これはAPI documentationで説明されています

その後、複数の充足コンストラクタほとんどのパラメータと最も広いアクセシビリティの1がある場合(そして保護すなわち、最初の公開は、その後、最後にプライベート・プライベートパッケージ)が選択されています。