teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

不要なコードを削除

2018/07/26 05:30

投稿

euledge
euledge

スコア2404

answer CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  @Test
26
26
  public void test_method_fuga() {
27
- ResponseBuilder responseBuilder = Response.ok("called entity method");
27
+ ResponseBuilder responseBuilder = Response.ok();
28
28
 
29
29
  PowerMockito.mockStatic(Response.class);
30
30
  when(Response.status(any())).thenReturn(responseBuilder);

1

コメントに対する回答を追記

2018/07/26 05:30

投稿

euledge
euledge

スコア2404

answer CHANGED
@@ -11,4 +11,42 @@
11
11
  PowerMockito.when(TestTargetClass.static_method()).thenReturn("mocked_static_method");
12
12
  assertThat(TestTargetClass.static_method(), is("mocked_static_method"));
13
13
  }
14
- ```
14
+ ```
15
+
16
+ ----
17
+ ### コメントを受けての追記
18
+
19
+ 実際にテストで確認する目的が把握していないのでモックできますよという点のみで下記コードを書いて見ました。
20
+
21
+ ```
22
+ @PrepareForTest({Response.class})
23
+ public class HogeTest {
24
+
25
+ @Test
26
+ public void test_method_fuga() {
27
+ ResponseBuilder responseBuilder = Response.ok("called entity method");
28
+
29
+ PowerMockito.mockStatic(Response.class);
30
+ when(Response.status(any())).thenReturn(responseBuilder);
31
+
32
+ Hoge hoge = new Hoge();
33
+ Response r = hoge.fuga(Status.ACCEPTED, "called entity method");
34
+
35
+ // mock でResponse.okとしているのでステータスは200になります。
36
+ assertThat(r.getStatus(), is(200));
37
+ assertEquals(r.getEntity(), "called entity method");
38
+ }
39
+ }
40
+
41
+ ```
42
+
43
+
44
+ >Response.status(Status)が実行されていること。
45
+ ResponseBuilder.entity(Object)が実行されていること。
46
+ ResponseBuilder.build()が実行されていること。
47
+ は実現できていると思います。
48
+
49
+ >そもそも、このクラスに対して私の考えたテスト内容と方針は問題ないか。
50
+ は、このテストで確認したい目的が把握できないので回答できないです。
51
+
52
+ テストで確認したい内容によってはfugaをモックするだけでも良いのかもしれませんね。