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

回答編集履歴

4

修正

2019/07/11 01:31

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -22,4 +22,7 @@
22
22
  この場合、「A」だけ「B」だけで単体評価が可能となるのか?というのがカギになってきます。
23
23
  もちろん、「Aを呼び出した結果を利用してBのテストを通す」という前提にすれば可能かもしれませんが、
24
24
  それだと単体というより結合なので、やはりあくまで**単体で要件が完了すること**が望ましいと思います。
25
+
25
- コントローラに返ってくるのはBの結果なので「Aって何のためにあるの?」という疑問もあります
26
+ コントローラに返ってくるのはBの結果なので「Aって何のためにあるの?」という疑問もあります
27
+ こういったモデルも本質的には役割分担を目的としているので、なるべく「部品を作って組み立てる(組み合わせる)」ような考え方ができれば良いのではと。
28
+ 「Aが単体で使われるのか」「Bが単体で使われるのか」という部分も含めて設計ですね。

3

修正

2019/07/11 01:31

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
File without changes

2

修正

2019/07/11 01:31

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -21,5 +21,5 @@
21
21
 
22
22
  この場合、「A」だけ「B」だけで単体評価が可能となるのか?というのがカギになってきます。
23
23
  もちろん、「Aを呼び出した結果を利用してBのテストを通す」という前提にすれば可能かもしれませんが、
24
- それだと単体というより結合なので、やはりあくまで「個々に動作が可能ことが望ましいと思います。
24
+ それだと単体というより結合なので、やはりあくまで**単体要件が完了すること**が望ましいと思います。
25
25
  ※コントローラに返ってくるのはBの結果なので「Aって何のためにあるの?」という疑問もあります

1

修正

2019/07/11 01:24

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -14,4 +14,12 @@
14
14
  ただ、サービスからサービスを呼ぶというのはあまりないと思いますので、
15
15
  「コントローラから必要なサービスを呼ぶ」が正解とは思います。
16
16
 
17
- 私が以前関わった業務ではJUnitによる単体テストはサービスのみを通していました。コントローラはあくまで「サービスを通して画面に必要な情報を取得する場所」という位置づけであるためですね。
17
+ 私が以前関わった業務ではJUnitによる単体テストはサービスのみを通していました。コントローラはあくまで「サービスを通して画面に必要な情報を取得する場所」という位置づけであるためですね。
18
+
19
+ つまり、
20
+ > 後者の場合は、ASeviceの処理結果を呼び出し元に返し、その結果をBServiceに渡して、BServiceの結果を受け取り、この2つの処理の結果を呼び出し元で結合する。
21
+
22
+ この場合、「A」だけ「B」だけで単体評価が可能となるのか?というのがカギになってきます。
23
+ もちろん、「Aを呼び出した結果を利用してBのテストを通す」という前提にすれば可能かもしれませんが、
24
+ それだと単体というより結合なので、やはりあくまで「個々に動作が可能である」ことが望ましいと思います。
25
+ ※コントローラに返ってくるのはBの結果なので「Aって何のためにあるの?」という疑問もあります