mockito 在存根方法调用时使用参数匹配器会导致类型错误

tsm1rwdh  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(140)

下面是我的代码:

class Foo {
  int bar(int x) => x;
}

class MockFoo extends Mock implements Foo {}

void main() {
  final foo = MockFoo();
  when(foo.bar(any)).thenReturn(42);
  print(foo.bar(7)); // prints 42
}

字符串
为什么传入any作为参数匹配器会给我这个错误:

The argument type 'Null' can't be assigned to the parameter type 'int'.dart(argument_type_not_assignable)


那么我们应该在哪里使用any,如果将它传递到我们试图存根的方法中,就会给我一个错误。
我希望参数匹配器能够工作,就像这些文档中显示的那样。

ecbunoof

ecbunoof1#

我认为这些文档是在null-safety出现之前写的。你可以改变你的bar方法来接收int?而不是int。

int? bar(int? x) => x;

字符串
或者

int bar(int? x) => x ?? 0;

相关问题