質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

0回答

785閲覧

メソッドAの返り値をテストする際にメソッドA内にあるメソッドBの返り値を引数化せずにモック化したい。

MasatofromMGSV

総合スコア21

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

2クリップ

投稿2021/10/27 20:31

編集2022/01/12 10:55

環境

flutter
dart
mockito

やりたいこととできないこと
現在、 メソッドAの返り値をテストする際にメソッドA内にあるメソッドBの返り値をモック化しようとしています。
一応、メソッドA内で実行されるメソッドBの返り値を引数にすればモック化せずにテストできるのですが、既存のコードを変更してしまうためこの解決策はやりたくないです。

コード

dart

1 2// sample.dart 3class Sample { 4 int a (){ 5 return b() + 4; 6 } 7 8 int b (){ 9 return 3; 10 // 普通は7 11 // mock化のテストなら9になるはず 12 } 13} 14

dart

1 2// sample_test.dart 3 4import 'package:sellca_pad_3/models/sample.dart'; 5import 'package:flutter_test/flutter_test.dart'; 6import 'package:mockito/annotations.dart'; 7import 'package:mockito/mockito.dart'; 8import 'sample_test.mocks.dart'; 9 10([Sample]) 11void main(){ 12 test('モックのテスト', (){ 13 final mockSample = MockSample(); 14 when(mockSample.b()).thenReturn(5); 15 final sample = Sample(); 16 final addResult = sample.a(); 17 expect(addResult, 9); 18 }); 19} 20

このテストの結果の期待値と実際の値

実際の値: 7
期待値: 9

when(mockSample.b()).thenReturn(5);でメソッドbの返り値を3から5に変更し、これでメソッドaの返り値の値がメソッドbの返り値(3)+4から、メソッドbをモック化した返り値(5)+4で9になるようにしたかったのですが、これではモック化していないメソッドbがメソッドa内で実行されてしまうので、返り値が7になってしまいます。
この問題を解決するために何かアドバイスがあればお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問