0

我的应用程序正在访问服务范围 ( package:gcloud/service_scope.dart) 中的对象,例如storageService我放入范围内的其他服务ss.register()

现在我想对访问此范围的函数进行单元测试,并使用我想放入服务范围的模拟对象。

这样做的唯一方法是为每个测试注册它们,如下所示:

var withServiceScope = (callback()) => ss.fork(() {
  // Register all services here
  return callback();
});
test('the description', () => withServiceScope(() async {
  // Call my function that can now access the service scope
}));

或者有没有办法让我在setUp()函数中做到这一点,所以我不需要为每个测试添加这一行?

4

1 回答 1

1

这可能会使编写测试变得更简单(代码未测试)

import 'package:test/test.dart' as t;
import 'package:test/test.dart' show group;

var withServiceScope = (callback()) => ss.fork(() {
  // Register all services here
  return callback();
});

test(String description, Function testFunction) {
  t.test(description, () => withServiceScope(() async {
    testFunction();
  }));
}

main() {    
  test('the description', () async {
    // Call my function that can now access the service scope
  }));
}
于 2015-09-13T13:38:04.333 回答