我已经开始编写测试了。我看到mockito和mocktail作为最常用的测试库。我找不到任何解释它们之间差异的问题/文章。如果有经验丰富的开发人员(同时使用过它们),您能解释一下它们的差异/优点/缺点吗?我应该更喜欢哪一个?
Max*_*Max 46
1.假设您是 Flutter 新手,那么使用mocktail包可能会更容易。
mockito包的主要“不便之处”是,您需要生成运行flutter pub run build_runner build 的模拟,定义像@GenerateMocks这样的元注释,以及像xxx.mocks.dart这样的导入,以及在pubspec上额外的build_runner dev 依赖项.yaml。
mocktail包简化了模拟:您只需要扩展 Mock 类即可。就是这样。无需代码生成、注释、“神奇” xxx.mocks.dart导入。
2.另外,您必须记住,无酒精鸡尾酒包非常新,并且只有 10 个月的稳定历史。mockito包是一个经过时间和开发人员验证的库,拥有近 8年的稳定发布历史:该库众所周知,并且在 Flutter 和 Dart 社区中广泛使用。
凭借经验,您将更好地了解哪个库更适合您的项目需求。
PS:你可以看一下这两个包的代码片段。
无酒精鸡尾酒片段:
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();
}
Run Code Online (Sandbox Code Playgroud)
模拟片段截图
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();
}
Run Code Online (Sandbox Code Playgroud)
Bur*_*rak 14
在经历了这两种情况后回答我自己的问题:
起初我决定使用mockito,因为它更有声誉。但是,一次又一次地重新生成模拟类是很困难的。但后来,我想给一个无酒精鸡尾酒的机会,并且确实发现它更好!我建议使用它来代替mockito,因为它有一些优点。不必生成模拟类并不是唯一的优点!
| 归档时间: |
|
| 查看次数: |
6885 次 |
| 最近记录: |