我正在构建一个应用程序,并使用GetX作为依赖关系管理器。我正在编写单元测试来测试控制器内部功能的功能。但是,当我运行测试时,得到如下错误。
这是我的控制器类:class SwitchController extends GetxController {
final visitsController = Get.put(DateNavigationController());
var selectedPill = "week".obs;
var labelIndex = 0.obs;
}
由于我也使用GetX作为状态管理解决方案,变量末尾的.obs使其响应。
我所要做的就是检查selectedPill
的值,如果它被初始化为"week"。
我使用Mockito来模拟我的控制器类,代码如下:
class MockSwitchController extends Mock implements SwitchController {}
void main() {
late MockSwitchController sut;
setUp(() {
sut = MockSwitchController();
});
tearDown(() {
sut.dispose();
});
test('check the value of selectedPill', () {
expect(sut.selectedPill.value, "week");
});
然而,当运行测试时,我得到一个错误,说"类型'Null'不是类型'RxString'"的子类型。
我不明白问题到底是在哪里出现的,问题可能是什么。
在test下按run键,在main函数下按debug键查看更多细节。当您使用Mock时,您应该告诉函数何时调用,应该返回什么。