Gag*_*cha 10 dart dart-pub flutter flutter-test
我创建了一个类作为单例,创建一个静态方法来获取该类的实例,但是在单元测试时我无法模拟该类。dart 中是否有其他方法可以仅创建单个实例并且可以轻松进行单元测试。
Gün*_*uer 11
根据您的具体要求,有不同的方法。
您可以使用附加类来访问单例,您可以在其中创建多个实例,同时仍然保证它允许访问的值将是单例:
class MySingleton {
static final MySingleton value = MySingleton.();
MySingleton._();
}
class MySingletonHelper {
MySingleton get value => MySingleton.value;
}
Run Code Online (Sandbox Code Playgroud)
或替代方法使用@visibleForTesting
的限制是单例值不能,final
并且写访问仅受 DartAnalyzer 限制,但不受编译器限制(我不认为这是一个严重的限制):
import 'package:meta/meta.dart';
class MySingleton {
static MySingleton _value = MySingleton.();
static MySingleton get value => _value;
@visibleForTesting
static set value(MySingleton val) => _value = val;
MySingleton._();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4023 次 |
最近记录: |