如何在 Mockito Dart 版本中捕获参数

Ens*_*ado 5 unit-testing mockito dart

我试图捕获传递给函数的参数,然后在参数的属性之一等于特定值时做出一些断言。

不幸的是,传递了一个对象,因此我不能根据官方文档快速断言。

cat.eatFood("Fish");
expect(verify(cat.eatFood(captureAny)).captured.single, ["Fish"]);
Run Code Online (Sandbox Code Playgroud)

我想实现如下伪代码所示的目标;

cat.eatFood(fridge);
expect(verify(cat.eatFood(captureAny)).captured.single, fridge.milk == "Milk");
Run Code Online (Sandbox Code Playgroud)

或者我只是不想把争​​论冰箱存放在其他地方。

小智 1

这应该可以解决问题:

verify(
  cat.eatFood(captureThat(equals("fish"))),
).called(1);
Run Code Online (Sandbox Code Playgroud)

查看更多示例: https: //pub.dev/packages/mockito/example