在Flutter 2发布后,我已经将我的代码迁移到了sdk: '>=2.12.0 <3.0.0',现在所有的代码都是“声音零安全”。但是我在使用mockito 5.0.0进行单元测试时遇到了错误
例如:
when(mockClient.login(any)).thenThrow(GrpcError.unavailable());之前是可以的,但是现在,编译器在any下显示了一个错误,表示:The argument type 'Null' can't be assigned to the parameter type 'LoginRequest'
我从mockito repo中读到了this link,但我希望有一种更简单的方法来为带有“不可空”参数的方法编写测试,就像以前一样。
发布于 2021-05-01 01:46:24
查看the solution here.,你可以使用mocktail包,这使它变得更容易。
使用mocktail,您的代码将变成
when(() => mockClient.login(any())).thenThrow(GrpcError.unavailable());发布于 2021-07-16 01:40:36
当分配模拟对象时,它需要是模拟对象类型,而不是BaseClass。
@GenerateMocks(MockSpec<ITransactionRepository>(as: #MockTransactionRepository),
)
void main()
{
....
ITransactionRepository baseObject = MockTransactionRepository(); // wrong
MockTransactionRepository mockObject = MockTransactionRepository(); // right
when(baseObject.method(any)); // results in compile error
when(mockObject.method(any)); // OK
...
}发布于 2021-03-11 20:48:06
any返回null,不允许将null值传递给您的login方法。
这是NNBD的主要缺点,模仿比以前更不容易了。
https://stackoverflow.com/questions/66582801
复制相似问题