Dart:
テストの作成
どうやって:
Dartでは、testパッケージがテストの記述に一般的に使用されます。まず、pubspec.yamlにtestパッケージを追加します:
dev_dependencies:
test: ^1.0.0次に、シンプルな関数のテストを書きます。2つの数値を加算する関数があるとします:
int add(int a, int b) {
return a + b;
}次に、testディレクトリ内にadd_test.dartという名前のファイルを作成し、テストケースを記述します:
import 'package:test/test.dart';
import '../lib/add.dart'; // `add`関数が lib/add.dart 内にあると仮定
void main() {
test('2つの数値の加算', () {
var expected = 3;
expect(add(1, 2), equals(expected));
});
}テストを実行するには、Dartコマンドを使用します:
$ dart testサンプル出力は次のようになるかもしれません:
00:01 +1: 全てのテストが通過しました!サードパーティライブラリを使用する:モッキングのためのMockito
複雑な依存関係を持つコードをテストする場合、モックオブジェクトを作成するためにMockitoを使用するかもしれません。まず、pubspec.yamlにMockitoを追加します:
dev_dependencies:
mockito: ^5.0.0ユーザーデータを取得するUserRepositoryクラスがあり、実際のデータベースにアクセスせずにUserRepositoryに依存するUserServiceをテストしたいとします:
import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:your_project/user_repository.dart';
import 'package:your_project/user_service.dart';
// Mockitoを使用してMockクラスを作成
class MockUserRepository extends Mock implements UserRepository {}
void main() {
group('UserService テスト', () {
test('ユーザーを正常に取得', () {
// モックインスタンスの作成
final mockUserRepository = MockUserRepository();
final userService = UserService(mockUserRepository);
// モックの振る舞いのセットアップ
when(mockUserRepository.fetchUser(1)).thenReturn(User(id: 1, name: 'テストユーザー'));
// モックメソッドが期待される引数で呼び出されたことをアサート
expect(userService.getUserName(1), 'テストユーザー');
verify(mockUserRepository.fetchUser(1)).called(1);
});
});
}このテストの実行は、UserServiceがUserRepositoryと正しく相互作用し、モッキングを使用して実際の相互作用を制御された方法でシミュレートすることを確認します。