Mockito vs Mocktail in Flutter

f45qwnt8  于 2023-06-07  发布在  Flutter
关注(0)|答案(2)|浏览(146)

我开始写测试。我看到mockitomocktail是最常用的测试库。我找不到任何问题/文章来解释它们之间的差异。如果有一个有经验的开发人员-谁使用了这两个-你能解释他们的差异/优点/缺点?我应该选择哪一个?

l5tcr1uw

l5tcr1uw1#

**1.**假设您是Flutter的新手,使用mocktail包可能会更容易。

mockito包的主要“不便之处”在于,您需要生成运行flutter pub run build_runner build的模拟,定义元注解(如**@GenerateMocks**)和导入(如xxx.mocks.dart),以及在pubspec.yaml处的额外build_runnerdev依赖项。
mocktail包简化了模拟:您只需要扩展Mock类。就是这样。没有代码生成,注解,“魔术”xxx.mocks.dart导入。

2.此外,您必须记住mocktail软件包是非常新的,并且只有10个月的稳定历史。mockito包是一个经过时间和开发人员验证的库,拥有近8年的稳定版本历史:该库是众所周知的,并且在Flutter和Dart社区中广泛传播。

有了这些经验,您将更好地了解哪个库更适合您的项目需求。

**PS:**您可以查看两个包的代码片段。
mocktail片段:

import 'package:mocktail/mocktail.dart';

// Real Cat class
class Cat {
  // ...
}

// Mock Cat Class
class MockCat extends Mock implements Cat{}

void main() {
  // Create a Mock Cat instance
  final cat = MockCat();
}

mockito片段截图

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

import 'cat.mocks.dart';

// REAL class
class Cat {
 // ...
}

// Annotation which generates the cat.mocks.dart library
@GenerateMocks([Cat])
void main() {
  // Create a mock object
  final cat = MockCat();
}
t9eec4r0

t9eec4r02#

在经历了这两件事后,我回答了自己的问题:
起初我决定使用mockito,因为它有更多的声誉。但是,模拟课程很难一次又一次地再生。但后来,我想给予一个机会mocktail和肯定看到,它是更好的!我建议使用它而不是mockito,这有几个优点。不必生成模拟类并不是唯一的优势!

相关问题