dart - 全局设置和拆卸函数

标签 dart

通常情况下,您需要在每次测试后进行某种清理。例如,清理数据库。

问题:

使用unittest库时有没有办法附加全局tearDown和setUp函数? 能够定义周围建议会更好:

unittest.around((test){
  //doing setup
  test();
  //doing cleanup
});

最佳答案

当然,需要先修复错误:-)

然后,您可以像 Justin 所说的那样,使用可以显式向上调用的非匿名函数来执行此操作。在我看来,这是提供最大灵 active 的最佳方式,而且不会因为大量复杂的设置/拆卸逻辑而妨碍单元测试库。

如果您想进行测试套件设置/拆卸,您可以通过组中的初始/最终“测试”来完成:

group('test suite', () {
  test('Set up suite', () { ... });
  test('Test 1', () { ... });
  ...
  test('Test n', () { ... });
  test('Tear down suite', () { ... });
});

这并不理想,但它是一个解决方案。

值得指出的是,在内部,组实际上并不表示为层次结构。我们真正要做的就是用当前的 setUp/tearDown 函数保留一个堆栈,以便我们可以将每个测试用例与适当的测试用例关联起来,并将组名称和测试名称连接起来以形成测试用例的最终名称。我们没有构建树数据结构,因此我们没有一种隐式执行向上调用的好方法(我们可以动态创建向上调用一级的闭包,并将它们用作实际的 setUp/tearDown 函数,但这有点丑陋)。

关于dart - 全局设置和拆卸函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15047464/

相关文章:

android - 如何在 Flutter 中使用 Dio 和 multi_image_picker 插件上传多张图片

list - (Dart) 如何执行列表中的每个函数?

flutter - 包含int中的int函数

firebase - Firebase ML套件即使在Flutter应用中也为相同的面部提供了不同的面部跟踪ID

flutter - 如何从另一个列表元素中获取List <Class>,我得到类型转换

dart - 如何从终端运行 dart 静态分析?

dart - 当应用程序被卸载时,sharedpreferences 会发生什么变化?

azure - 使用 dio 时上传到 Azure 的文件已损坏

list - 如何从Dart中的类列表检索属性?

firebase - Flutter: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)