我正在开发一个颤振联合插件,如此处所述。我的集成测试看起来像这样(简化示例,仿照url_launcher 插件集成测试):
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets('Successful start', (WidgetTester _) async {
var foo = FooPlatform.instance;
await foo.start();
});
testWidgets('Exception when stopping non-running plugin', (WidgetTester _) async {
var foo = FooPlatform.instance;
try {
await foo.stop();
fail("Exception expected");
} on PlatformException catch (e) {
// verify error
}
});
}
由于插件在被测活动创建时注册和初始化,在活动被销毁时被销毁,因此插件状态不会在测试之间重置。第二次测试会失败。
我知道我可以在插件中实现某种重置方法,但这不是我想要的。我正在寻找一种方法让测试框架重新创建活动或至少重新创建插件,以便插件在每个测试中都处于明确定义的状态。