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

b1uwtaje  于 2022-11-29  发布在  其他
关注(0)|答案(2)|浏览(114)

我试图捕捉传递给函数的参数,然后在参数的某个属性等于特定值时进行Assert。
不幸的是,一个对象被传递了,因此我不能根据官方文档快速做出Assert。

cat.eatFood("Fish");
expect(verify(cat.eatFood(captureAny)).captured.single, ["Fish"]);

我想实现的东西如图所示,如果这个伪代码;

cat.eatFood(fridge);
expect(verify(cat.eatFood(captureAny)).captured.single, fridge.milk == "Milk");

或者我只是不愿意把辩论冰箱存放在其他地方。

bf1o4zei

bf1o4zei1#

这样就可以了:

verify(
  cat.eatFood(captureThat(equals("fish"))),
).called(1);

如欲了解更多示例,请访问:https://pub.dev/packages/mockito/example

eqoofvh9

eqoofvh92#

这对我很有效:
方案1

final verification = verify(mockedSrv.send(captureAny));
expect(verification.captured[0].milk, "Milk");

备选办法2

expect(verify(mockedSrv.send(captureAny)).captured.single.milk, "Milk");

相关问题