对于使用远程服务的Dart组件,我首先将Dart服务接口定义为抽象类(例如抽象类XService),然后使用实现服务API的同步方法将模拟类(类XServiceMock实现XService)定义为I用于测试组件。我现在开始实现真正的代理(类XServiceImpl实现XService),它的一些方法使用'await / async'语言功能。 'await'要求contains方法用async注释,这需要返回类型Future< Something>并使其与XService中的方法签名冲突。我希望能够在不修改组件源代码的情况下注入模拟代理或真实代理。可以这样做吗?
XService (api)
XServiceMock implements XService (sync methods only)
XServiceImpl implements XService (mixture of async and sync methods)
答案 0 :(得分:2)
这是不可能的。您可以做的是指定异步接口并从同步代码返回未来。
return new Future.value(someReturnValue);