我开始写测试。我看到mockito和mocktail是最常用的测试库。我找不到任何问题/文章来解释它们之间的差异。如果有一个有经验的开发人员-谁使用了这两个-你能解释他们的差异/优点/缺点?我应该选择哪一个?
mockito
mocktail
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(); }
t9eec4r02#
在经历了这两件事后,我回答了自己的问题:起初我决定使用mockito,因为它有更多的声誉。但是,模拟课程很难一次又一次地再生。但后来,我想给予一个机会mocktail和肯定看到,它是更好的!我建议使用它而不是mockito,这有几个优点。不必生成模拟类并不是唯一的优势!
2条答案
按热度按时间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片段:
mockito片段截图
t9eec4r02#
在经历了这两件事后,我回答了自己的问题:
起初我决定使用mockito,因为它有更多的声誉。但是,模拟课程很难一次又一次地再生。但后来,我想给予一个机会mocktail和肯定看到,它是更好的!我建议使用它而不是mockito,这有几个优点。不必生成模拟类并不是唯一的优势!