【问题标题】:How to capture argument in Mockito Dart version如何在 Mockito Dart 版本中捕获参数
【发布时间】:2021-04-15 10:26:59
【问题描述】:

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

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

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

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

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

或者我只是不会将参数冰箱存放在其他地方。

【问题讨论】:

  • expect(verify(cat.eatFood(captureAny)).captured.single.milk, "Milk");?
  • 我收到一个错误TestFailure(没有匹配的调用。所有调用:...)
  • 我也想将它写入变量。 var captured = verify(cat.eatFood(captureAny)).captured.first;
  • 它对我有用,var captured = verify(cat.eatFood(captureAny)).captured.first; 也是如此。请发布一个可重现的示例和确切的错误消息。
  • 我能够解决问题。你是对的。谢谢你的帮助。这是工作代码:var verification = verify(mockedSrv.send(captureAny)); expect(verification.captured[0].name, expectedName); expect(verification.captured[0].isFast, false);

标签: unit-testing dart mockito


【解决方案1】:

这应该可以解决问题:

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

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

【讨论】:

    猜你喜欢
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2023-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多