Flutter测试未来会引发错误,无法测试异常

时间:2019-10-22 02:13:06

标签: flutter

我正在测试一个返回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;
  } 

0 个答案:

没有答案