我正在尝试学习使用 bloc 进行测试。遵循文档中所述的程序。
我有 lib/cubit/counter_cubit.dart 和 lib/cubit/counterState.dart 文件
counter_cubit.dart 是:
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
part 'counter_state.dart';
class CounterCubit extends Cubit<CounterState> {
CounterCubit() : super(CounterState(counterValue: 0, wasIncremented: false));
void increment() => emit(
CounterState(counterValue: state.counterValue + 1, wasIncremented: true));
void decrement() => emit(CounterState(
counterValue: state.counterValue - 1, wasIncremented: false));
}
counter_state.dart 是:
part of 'counter_cubit.dart';
class CounterState extends Equatable {
int counterValue;
bool wasIncremented;
CounterState({
required this.counterValue,
required this.wasIncremented,
});
@override
List<Object?> get props => [counterValue, wasIncremented];
}
而 counter_cubit_test.dart 是:
import 'package:bloc_basics/cubit/counter_cubit.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
group("CounterCubit", () {
final CounterCubit counterCubit = CounterCubit();
test(
"the initial state for the CounterCubitis CounterState(counterValue:0, wasIncremented:false)",
() {
expect(counterCubit.state,
CounterState(counterValue: 0, wasIncremented: false));
});
blocTest(
"The cubit should emit a CounterState(countervalue:1, wasIncremented:true) when cubit.increment() is called.",
build: () => counterCubit,
act: (cubit) => cubit!.increment(),
expect: () => CounterState(counterValue: 1, wasIncremented: true));
});
}
该行act: (cubit) => cubit!.increment()
正在counter_cubit_test.dart
抛出The method 'increment' isn't defined for the type 'Object'.
错误。
想不通。