argThat和captureThat匹配器在dart mockito中有什么区别?
创始人
2024-09-13 07:30:19
0

在Dart的mockito库中,argThat和captureThat都是用于在mock对象的方法调用中捕获参数的匹配器。它们的区别在于如何使用和返回捕获的参数。

  1. argThat匹配器:

    • 使用argThat匹配器可以在方法调用中指定参数的某些条件。它接受一个函数作为参数,该函数接受一个参数并返回一个布尔值。

    • 如果传递给方法的参数满足函数中指定的条件,那么argThat匹配器将返回true,表示参数匹配成功。

    • 示例代码:

      import 'package:mockito/mockito.dart';
      
      class MockClass extends Mock implements SomeClass {}
      
      void main() {
        var mock = MockClass();
        when(mock.method(argThat((arg) => arg > 5))).thenReturn('Mocked Value');
      
        print(mock.method(10));  // 输出:Mocked Value
        print(mock.method(3));   // 输出:null
      }
      
  2. captureThat匹配器:

    • 使用captureThat匹配器可以捕获方法调用中的参数,并将其保存到一个列表中。这对于需要在后续的断言中检查参数值非常有用。

    • 示例代码:

      import 'package:mockito/mockito.dart';
      
      class MockClass extends Mock implements SomeClass {}
      
      void main() {
        var mock = MockClass();
        var capturedArgs = List();
      
        mock.method(captureThat(capturedArgs.add));
      
        print(capturedArgs);  // 输出:[参数值]
      }
      

总结:

  • argThat用于指定参数的某些条件,并返回匹配结果。
  • captureThat用于捕获方法调用中的参数,并将其保存到一个列表中,供后续的断言使用。

相关内容

热门资讯

一分钟了解!皮皮麻将通用软件,... 一分钟了解!皮皮麻将通用软件,欢乐龙城棋牌拼三张有外挂吗,可靠教程(有挂解说)1、许多玩家不知道欢乐...
七分钟了解!闽游麻将游戏有挂吗... 七分钟了解!闽游麻将游戏有挂吗,丽水茶苑有外挂是真的吗,AI教程(有挂透明);1、操作简单,无需注册...
一分钟了解!乐乐上海麻将有没有... 一分钟了解!乐乐上海麻将有没有挂,胡乐麻将,2025教程(有挂科普)该软件可以轻松地帮助玩家将乐乐上...
一分钟了解!乐享牛牛能代挂吗,... 一分钟了解!乐享牛牛能代挂吗,广东雀神外挂,解密教程(有挂教程)一分钟了解!乐享牛牛能代挂吗,广东雀...
7分钟了解!浩瀚麻将有没有假,... 7分钟了解!浩瀚麻将有没有假,新蜜瓜正版有没有外挂,安装教程(有挂神器)1、这是跨平台的新蜜瓜正版有...
十分钟了解!陕麻圈怎么开挂,中... 您好,中至江西麻将有挂吗这款游戏可以开挂的,确实是有挂的,需要了解加微【757446909】很多玩家...
七分钟了解!顺欣茶楼辅助,边锋... 您好,边锋老友二打一辅助这款游戏可以开挂的,确实是有挂的,需要了解加微【757446909】很多玩家...
一分钟了解!微信边锋掼蛋辅助工... 一分钟了解!微信边锋掼蛋辅助工具,优乐麻将规律,可靠教程(有挂实操);1、任何微信边锋掼蛋辅助工具a...
8分钟了解!川麻圈软件到底有没... 8分钟了解!川麻圈软件到底有没有挂,钱塘十三水如何拿好牌,解密教程(有挂揭秘);1、让任何用户在无需...
两分钟了解!兴动互娱麻将怎么提... 两分钟了解!兴动互娱麻将怎么提高胜率,长乐十三水辅助器,安装教程(有挂解说)1.兴动互娱麻将怎么提高...