gpt4 book ai didi

flutter - Dart:使用非常量值作为默认构造函数参数

转载 作者:行者123 更新时间:2023-12-03 04:54:32 26 4
gpt4 key购买 nike

我想使用 FirebaseAuth.instance (一个非常量值)作为构造函数中的默认参数。

我有这个类:

class MailAuth {
final FirebaseAuth firebaseAuth = FirebaseAuth.instance;

MailAuth();

// methods using firebaseAuth
}

现在我想对这个类进行单元测试,所以我想模拟 firebaseAuth并将模拟注入(inject)构造函数中。它应该是一个命名参数,默认值为 FirebaseAuth.instance .我试过这样的事情:
class MailAuth {
final FirebaseAuth firebaseAuth;

MailAuth({this.firebaseAuth = FirebaseAuth.instance});

// methods using firebaseAuth
}

但这不起作用,因为 FirebaseAuth.instance不是一个常数。

我怎样才能实现这种行为?

最佳答案

使用 null值作为符号以使用您的默认值:

 MailAuth({FirebaseAuth firebaseAuth}) 
: firebaseAuth = firebaseAuth ?? FirebaseAuth.instance;

如果参数为非空,则使用参数初始化变量,否则使用“默认”单例实例。

关于flutter - Dart:使用非常量值作为默认构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60838513/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com