相同测试的两种不同设置方法

Two different setUp methods for the same tests

我目前有两组测试,除了 setUp() 方法调用外,它们在各个方面都是相同的。我想简化代码,以便只定义一次测试集,但每个组运行自己的 setUp() 方法,然后运行相同的测试集。

目前我的代码看起来像这样:

group('test things while a flag is turned off', () {
  setUp(() {
    global_flags.flag = false;
  }
  /* run lots of tests */
})

group('test things while a flag is turned on' () {
  setUp(() {
    global_flags.flag = true;
  }
  /* run the exact same tests */
}

如何合并此代码?

您可以多次注册相同的测试并添加参数以自定义执行:

main() {
  myTests(true);
  myTests(false);
}

myTests(bool global_flags) {
  group('test things while a flag is turned ${global_flags ? 'on' : 'off'}' () {
    /* run the exact same tests */
  });
}