ale*_*zak 5 dart flutter flutter-test dart-null-safety
我大约一年前正在学习颤振,现在我休息后回来,但我遇到了一个问题,它可能很简单,但我不太理解它。
我正在关注 Flutter Clean Architecture 的教程,当我编写第一个测试时,我收到一条错误消息:“必须先分配不可为空的局部变量‘mockNumberTriviaRepository’,然后才能使用它。” 我不知道如何将其编写为正确的代码。
我的代码如下:
class MockNumberTriviaRepository extends Mock
implements NumberTriviaRepository {}
void main() {
GetConcreteNumberTrivia usecase;
MockNumberTriviaRepository mockNumberTriviaRepository;
setUp(() {
MockNumberTriviaRepository mockNumberTriviaRepository = MockNumberTriviaRepository();
usecase = GetConcreteNumberTrivia(mockNumberTriviaRepository);
});
final tNumber = 1;
final tNumberTrivia = NumberTrivia(number: 1, text: 'test');
test('schould get trivia for the number from the repository', () async {
// arrange
when(**mockNumberTriviaRepository**.getConcreteNumberTrivia(1)).thenAnswer((_) async => Right(tNumberTrivia));
// act
// assert
});
}
Run Code Online (Sandbox Code Playgroud)
错误出现在测试函数中when方法之后** ** this 标志之间的部分
编译器无法真正理解您稍后要初始化该值。要告诉它您承诺在使用变量之前这样做,请late在类型之前添加关键字。
例子:
// compiles successfully and prints 'abc'
void main() {
late String foo;
(){
foo = 'abc';
}();
print(foo);
}
Run Code Online (Sandbox Code Playgroud)
在你的情况下它将是
late MockNumberTriviaRepository mockNumberTriviaRepository;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1082 次 |
| 最近记录: |