/// A flag that indicates whether the NotificationProvider is being processed.
bool _isProcess = false;
set isProcess(bool value) {
_isProcess = value;
notifyListeners();
}
bool get isProcess => _isProcess;
NotificationProvider({required this.fetchNotificationUseCase});
//TODO("Satoshi"): catch exception or error
/// Fetch notification from api-server.
Future<void> fetchNotification() async {
try {
isProcess = true;
final res = await fetchNotificationUseCase.fetchNotification();
notificationList.clear();
notificationList.addAll(res);
isProcess = false;
notifyListeners();
} catch (e) {
isProcess = false;
notifyListeners();
debugPrint(e.toString());
}
}
字符串
我想测试isProcess属性是否更改为true和false。但是我唯一能测试的是在fetchNotification方法完成后isProcess是否为false。如何测试isProcess的变化?
这是我写的测试代码
test('then isProcess is being false', () async {
await notificationProvider.fetchNotification();
expect(notificationProvider.isProcess, false);
});
型
2条答案
按热度按时间blmhpbnm1#
您可以使用
ChangeNotifier
中的addListener
方法查看值的变化。样本码
字符串
envsm3lx2#
fetchNotification
在执行异步工作之前同步设置isProcess = true
。因此,您可以同步检查notificationProvider.isProcess
从false
转换到true
,然后检查它在所有异步工作完成后返回到false
:字符串