2017-03-20 6 views
-2

私たちはAEMアプリケーションのためのユニットテストフレームワークを学ぼうとしています。AEMアプリケーションのためのモック

我々は のためにいくつかのドキュメントを経て - ResourceResolverモック - スリングは モック - JCRが モック - OSGIモック - 誰もがそれに専門知識を持っている場合はAEMは、 を皮肉っしかし、それを明確に理解して取得していないしてください上記のトピックのためのユニットテストで

おかげで、 Guneshマハジャン

+1

モッキングの詳細については、以下のリンクを参照してください。あなたは専門家を予約して、テストに関する広範なセッションを提供することができます。 https://sling.apache.org/documentation/development/sling-mock.htmlかなり多くのものが集計されます。 –

答えて

1

をいくつかのコードのデモを共有してください、私たちはJCRとOSGiのオブジェクトを持っていません。

コードに検索クエリが含まれている場合は、javax.jcr.Sessionセッションにアクセスする必要があります。リソースを取得するには、ResourceResolverも必要です。

コードは、多少のようになります:あなたが同じの実際のバージョンを取得することはできませんので、

ResourceResolver resourceResolver = resolverFactory.getResourceResolver(properties); 
Session session = resourceResolver.adaptTo(Session.class); 

ので、ユニットテストであなたは、このようなオブジェクトのモックを送信する必要があります。疑似オブジェクトはダミーオブジェクトなので、テストケースではヌルポインタを取得しません。 Mockito、JUnit、PowerMockなどのモックフレームワークを使用して、モックでメソッド呼び出しの出力を指定します。

@Mock 
ResourceResolver resourceResolver; 

@Mock 
Session session; 

@InjectMocks 
YourMainClass objectOfYourMainClass; 

次に、whenThenステートメントを使用して、テストで期待される動作を指定します。

when(mock.methodCall).thenReturn(expectedReturnObject);

when(resourceResolver.adaptTo(Session.class)).thenReturn(session); 

PowerMockは、基本的なMockingフレームワークでは使用できないクラスをモックするために使用されるフレームワークです。例えば静的クラスは、PowerMockを使用してモックできます。

PowerMockについての情報は、Powermock githubリンクをご覧ください。この質問は十分に特定ではありません

http://www.vogella.com/tutorials/Mockito/article.html

https://dzone.com/articles/getting-started-mocking-java

+0

多くのテストでは、スリングモックは非常に強力なツールです。 –

+0

今までSling Mockを使っていません。それをチェックします。 –

関連する問題