我正在测试一个返回Future的函数
但是,当您传递错误的参数时,它将引发异常。
我正在尝试为此编写测试,但是当我运行
test("When a new practice is created with an empty name, an exception is thrown", () async {
//arrange
//act
//assert
expect(newUserRepository.saveUser("", "Test"), throwsA(TypeMatcher<Exception>()));
});
我得到以下内容
Expected: throws <Instance of 'TypeMatcher<Exception>'>
Actual: <Instance of 'Future<void>'>
Which: threw ?:<Exception>
我能通过测试吗?
我的saveUser函数
Future<void> saveUser(String username, String practiceName) async {
if (username == null || username.isEmpty || practiceName == null || practiceName.isEmpty) {
throw Exception("Unable to save empty username or pracice name");
}
var firebaseUser = await userRepository.getFirebaseUser();
var newUser = DomainUser(userName: username, email: firebaseUser.email);
await userRepository.saveUser(newUser);
var newPractice = DomainPractice(users: [newUser.email], practiceName: practiceName);
await practiceRepository.savePractice(newPractice);
return;
}