我是一个初学者扑发展。我想了解一下这背后的逻辑:
下面提供的代码是一个基本的代码,我写的理解错误,我在单元测试我的AuthProvider
在调试时,为provider.createUser()
提供await
关键字会重定向到remote_listener.dart
和invoker.dart
中的await
语句。使用此逻辑进行单元测试时,测试失败。
我的问题:为什么我们应该避免在单元测试时抛出异常的代码中使用await
void main() async {
final provider = MockAuthProvider();
final result = await provider.createUser(
email: 'email@email.com',
password: 'testPassword',
);
}
class MockAuthProvider {
Future<AuthUser> createUser({
required String email,
required String password,
}) async {
if (!isInitialized) throw NotInitializedException();
await Future.delayed(const Duration(seconds: 1));
const user = AuthUser(email: 'email@email.com', isEmailVerified: false);
return user;
}
1条答案
按热度按时间t1qtbnec1#
这个代码基本上是正确的。有几件事你可以做,使它更强大,解决你的问题,虽然。
这里有一个选择:
另一个选择是在
createUser
方法中处理错误: