お世話になっております。JUnitで質問です。
JUnitにはMockitoなどモックを作るライブラリがありますが、
あるクラスAのメソッド内で呼ばれるクラスBのモックを作り、セットすることは可能なのでしょうか。
例えば下記のようなクラスがあったとします。
java
1 2public class ProcExecute { 3 4 public String main(){ 5 Author author = new Author(); 6 return author.getName(); 7 } 8} 9 10 11// 別のあるメソッド(RootJob.getName)を実行すると、下記コードが実行される 12 13public class RootJob { 14 15 public static String getName() { 16 ProcExecute procExecute = new ProcExecute(); 17 String name = procExecute.main(); 18 return name; 19 { 20 21} 22 23
JUnitのイメージ
java
1 2@Test 3public void test() { 4 5 // Authorクラスをモック化してgetNameで返す値を任意に設定 <= 可能? 6 7 // RootJob.getNameを実行 8 String result = RootJob.getName(); 9 10 AssertThat(result, is("任意の文字")); 11} 12
いろいろなサンプルを見ると、まずAuthorのモックを作り、
それをどうにかしてRootJobにセットすることでモックの動作を実現しているように見えました。
しかし、セットする手段がない場合はどのようにすればよいのでしょうか。
別言語ですが、RSpecの場合はallow~receive~and_returnなどでテスト前に定義したモック(スタブ)は
以降の処理でプロダクションコードの中身を上書きするように振舞ってくれます。
実際に行いたいことではなくサンプルで提示したので、不整合な内容となっているかもですが、
可否だけでも知りたく、質問させて頂きました。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/07 08:55
2018/03/07 13:51