[英]Flutter unit testing with provider
I am not able to use the provider in unit testing I am using the following code.我无法在我使用以下代码的单元测试中使用提供程序。 I am getting this error
我收到这个错误
00:02 +2 -1: test student controller with add and remove student test controller for add new set [E]
Null check operator used on a null value
package:provider/src/provider.dart 274:20 Provider.of
test/student_controller_test.dart 53:22 main.<fn>.<fn>
test/student_controller_test.dart 36:53 main.<fn>.<fn>
class MockBuildContext extends Mock implements BuildContext {} class MockBuildContext extends Mock implements BuildContext {}
void main() {
late MockBuildContext _mockContext;
setUpAll(() {
_mockContext = MockBuildContext();
});
test('test student controller for add new student', () async {
List<Students> sts = [
Students(
name: 'Barbels',
age: 21,
weight: 70,
),
Students(
name: 'Hazel',
age: 31,
weight: 60,
),
];
var id = '1';
print(_mockContext);
MyController.saveStuden(_mockContext, id, sets);
print(Provider.of<StudentProvider>(_mockContext, listen: false)
.items
.length);
});
You need to register the controller to be run before tests.
您需要注册 controller 才能在测试前运行。
void main() {
late MockBuildContext _mockContext;
late MyController _controller;
setUpAll(() {
_controller = MyController();
_mockContext = MockBuildContext();
});
test('test student controller for add new student', () async {
List<Students> sts = [
Students(
name: 'Barbels',
age: 21,
weight: 70,
),
Students(
name: 'Hazel',
age: 31,
weight: 60,
),
];
var id = '1';
print(_mockContext);
_controller.saveStuden(_mockContext, id, sets);
print(Provider.of<StudentProvider>(_mockContext, listen: false)
.items
.length);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.