【发布时间】:2021-01-27 21:26:26
【问题描述】:
对于我的单元测试,我使用 mockito 4.1.4 像这样:
如果我使用此代码,我的测试将通过:
test('Adding data manually', () async {
final GhibliFilms ghibliMock = GhibliFilms();
ghibliMock.addFilm(FilmModel(
director: 'test director',
description: 'test',
releaseDate: 'test',
producer: 'test'
));
expect(ghibliMock.films.length, 1);
});
GhibliFilms addFilm 方法:
List<FilmModel> _films = [];
void addFilm(FilmModel film){
_films.add(film);
}
一个问题
我想使用MockClient手动控制一些数据,但是当我使用它时,我的测试会失败:
这是我的 MockClient:
class MockClient extends Mock implements GhibliFilms {
@override
Future<List<FilmModel>> getFilms() async{
return null;
}
}
当我将 final GhibliFilms ghibliMock = GhibliFilms(); 更改为 final MockClient ghibliMock = MockClient();(其余代码保持不变)时,我的测试将失败并显示以下消息:
NoSuchMethodError: The getter 'length' was called on null.
Receiver: null
Tried calling: length
我的方法有什么问题?以及如何在我的案例中使用 MockClient?
【问题讨论】:
标签: flutter unit-testing dart mocking mockito