内容简介:如何确保在添加更多功能或更改现有功能时,应用程序继续正常工作?通过编写测试。单元测试可以方便地验证单个函数,方法或类的行为。此方法演示了
如何确保在添加更多功能或更改现有功能时,应用程序继续正常工作?通过编写测试。
单元测试可以方便地验证单个函数,方法或类的行为。 test 包提供了编写单元测试的核心框架, flutter_test 包提供了用于测试Widgets的其他实用工具。
此方法演示了 test
包提供的核心功能。有关test包的更多信息,请参阅 test包文档
。
路线
1.添加test或flutter_test依赖项
2.创建一个测试文件
3.创建一个要测试的类
4.为我们的类写一个测试
5.在一个组中组合多个测试
6.运行测试
1. 添加测试依赖
如果您正在处理不依赖于Flutter的Dart包,则可以导入测试包。测试包提供了在Dart中编写测试的核心功能。在编写将由Web,服务器和Flutter应用程序使用的包时,这是最好的方法。
dev_dependencies: test: <latest_version>
2.创建一个测试文件
在此示例中,创建两个文件: counter.dart
和 counter_test.dart
。
counter.dart
文件将包含您要测试的类,并归属于lib文件夹。 counter_test.dart
文件将包含多个测试并存在于 test
文件夹中。
通常,测试文件应该归属于于Flutter应用程序或程序包根目录的test文件夹中。
完成后,文件夹结构应如下所示:
counter_app/ lib/ counter.dart test/ counter_test.dart
3. 创建一个类来对它进行测试
接下来,您需要一个“单位”来测试。请记住:“unit”是函数,方法或类的设想名称。在此示例中,在lib/counter.dart文件中创建Counter类。它将负责递增和递减从0开始的值。
class Counter { int value = 0; void increment() => value++; void decrement() => value--; }
注意:为简单起见,本教程不遵循“测试驱动开发”方法。如果你对这种开发方式更加满意,你可以随时走这条路。
4. 为我们的类写一个测试
在counter_test.dart文件中,编写第一个单元测试。测试是由顶级测试功能定义的,您可以使用顶级expect功能检查结果是否正确。这两个功能都来自 test
包。
// Import the test package and Counter class import 'package:test/test.dart'; import 'package:counter_app/counter.dart'; void main() { test('Counter value should be incremented', () { final counter = Counter(); counter.increment(); expect(counter.value, 1); }); }
5. 在一个组中组合多个测试
如果您有多个彼此相关的测试,请使用 test
包提供的组功能将它们组合在一起。
import 'package:test/test.dart'; import 'package:counter_app/counter.dart'; void main() { group('Counter', () { test('value should start at 0', () { expect(Counter().value, 0); }); test('value should be incremented', () { final counter = Counter(); counter.increment(); expect(counter.value, 1); }); test('value should be decremented', () { final counter = Counter(); counter.decrement(); expect(counter.value, -1); }); }); }
6.运行测试
现在Counter类和test已经就位了,你可以运行测试了。
使用IntelliJ或VSCode运行测试
IntelliJ和VSCode的Flutter插件支持运行测试。这通常是编写测试时的最佳选择,因为它提供了最快的反馈循环以及设置断点的能力。
- IntelliJ
counter_test.dart Run Run'test in counter_test.dart'
-
VSCode
counter_test.dart Debug start Debugging
在终端中运行测试
您还可以使用终端通过从项目的根目录执行以下命令来运行测试:
flutter test test/counter_test.dart
以上所述就是小编给大家介绍的《(译)单元测试介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Vue 应用单元测试的策略与实践 02 - 单元测试基础
- Vue 应用单元测试的策略与实践 04 - Vuex 单元测试
- Vue 应用单元测试的策略与实践 03 - Vue 组件单元测试
- Angular单元测试系列-Component、Directive、Pipe 以及Service单元测试
- 单元测试,只是测试吗?
- 单元测试和集成测试业务
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
REST in Practice
Jim Webber、Savas Parastatidis、Ian Robinson / O'Reilly Media / 2010-9-24 / USD 44.99
Why don't typical enterprise projects go as smoothly as projects you develop for the Web? Does the REST architectural style really present a viable alternative for building distributed systems and ent......一起来看看 《REST in Practice》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
MD5 加密
MD5 加密工具