Flutter GenerateMocks不是生成模拟类

发布于 2025-02-01 23:21:47 字数 565 浏览 5 评论 0原文

我正在尝试在我的测试方法上使用@generatemocks,这是我的开发依赖项:

dev_dependencies:
  test: any
  flutter_test:
    sdk: flutter
  flutter_driver:
    sdk: flutter
  integration_test:
    sdk: flutter
  flutter_lints: ^1.0.4
  build_runner: ^2.1.4
  mockito: ^5.0.0
  mocktail: ^0.2.0

我正在使用这样的使用:

@GenerateMocks([CustomerPOAutocompleteState])
void main() {
  TestWidgetsFlutterBinding.ensureInitialized();

但是在运行flutter flutter pub run build build build build_runner build build没有生成什么都没有生成?

I am trying to use @GenerateMocks on my test method, This is my dev dependancies:

dev_dependencies:
  test: any
  flutter_test:
    sdk: flutter
  flutter_driver:
    sdk: flutter
  integration_test:
    sdk: flutter
  flutter_lints: ^1.0.4
  build_runner: ^2.1.4
  mockito: ^5.0.0
  mocktail: ^0.2.0

and I am using like this:

@GenerateMocks([CustomerPOAutocompleteState])
void main() {
  TestWidgetsFlutterBinding.ensureInitialized();

But after running flutter pub run build_runner build nothing is generated?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心的位置 2025-02-08 23:21:47

不知道这是否是它,但是我只是将import'my_test_file.mocks.dart'; @generatemocks 注释并效果很好。

之前:

@GenerateMocks([MyClass])

之后:

@GenerateMocks([MyClass])
import 'my_test_file.mocks.dart';

Don't know if this is it but i've just put the import 'my_test_file.mocks.dart'; after the @GenerateMocks annotation and worked fine.

before:

@GenerateMocks([MyClass])

after:

@GenerateMocks([MyClass])
import 'my_test_file.mocks.dart';
残龙傲雪 2025-02-08 23:21:47

根据文档

如果您需要模拟getxController/getxService,则应扩展GetXController,然后将其与模拟混合在一起,以便

class NotificationServiceMock extends GetxService 
       with Mock implements NotificationService {}

我直接在dependencies上直接添加了mockito

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2
  flutter_bloc: ^8.0.1
  equatable: ^2.0.3
  dartz: ^0.10.1
  mockito: ^5.2.0 #here


dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^2.1.11

请确保在您的抽象类上创建一些方法,在我的情况下,它是restaurantrepository,并将像@generatemocks([restaurantantrepository])一样被注释。

然后

flutter pub run build_runner build

在测试文件上运行

import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';

@GenerateMocks([RestaurantRepository])
void main() {
  late MockRestaurantRepository mockRestaurantRepository;
//...}

As per documentation

If you need to mock your GetxController/GetxService, you should extend GetxController, and mixin it with Mock, that way

class NotificationServiceMock extends GetxService 
       with Mock implements NotificationService {}

I directly added mockito on dependencies.

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2
  flutter_bloc: ^8.0.1
  equatable: ^2.0.3
  dartz: ^0.10.1
  mockito: ^5.2.0 #here


dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^2.1.11

Make sure to create some methods on your abstract class, in my case it is RestaurantRepository and will be annotated like @GenerateMocks([RestaurantRepository]).

And then run

flutter pub run build_runner build

On test file

import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';

@GenerateMocks([RestaurantRepository])
void main() {
  late MockRestaurantRepository mockRestaurantRepository;
//...}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文