美文网首页
ruby断言小花招

ruby断言小花招

作者: SecondRocker | 来源:发表于2020-07-12 18:17 被阅读0次

断言类

class Object
  # 需用eigenclass
  def metaclass
    class << self
      self
    end
  end

  # 实例方法断言
  def skip_method(*args,&block)
    actual_asset_return(args,&block)
  end

  # 类方法断言
  def class_skip_method(*args,&block)
    self.metaclass.send(:actual_asset_return,args,&block)
  end


  private
  # 别名
  def actual_asset_return(method_names)
    method_names.each do |method_name|
      new_method_name = "_#{method_name}_asset_rtn_m".to_sym
      alias_method new_method_name, method_name.to_sym
      define_method method_name do |*args|
        puts "asset"
        yield if block_given?
      end
    end
  end
end

正式上忽略断言

class Object
  def skip_method(*args);end;
  def class_skip_method(*args);end;
end

跳过方法执行

class A
  def sb
    puts "sb"
  end
  skip_method :sb do 
    11
  end

  def self.sba
    puts "m_sb"
  end
  class_skip_method :sba
end
A.new.sb # 不执行原方法 返回11

A.sba # 不执行原方法,返回nil

相关文章

  • ruby断言小花招

    断言类 正式上忽略断言 跳过方法执行

  • iOS开发--处理不等高TableViewCell的小花招

    iOS开发--处理不等高TableViewCell的小花招 iOS开发--处理不等高TableViewCell的小花招

  • 客观断言和主观断言 阅读抄300

    客观断言和主观断言 在说明“结论”之前,我们先来区分客观断言和主观断言。客观断言(objective claim)...

  • Jmeter响应断言详解

    一、添加响应断言 选中需要进行断言的Sampler,右键添加 “断言” → “响应断言”。参数配置如下: 适用于:...

  • jmeter检查点

    1、添加响应断言,右键点击我们的“登录”页面---->添加---->断言---->响应断言 2. 设置响应断言 3...

  • 自学Swift之断言 assertion

    断言概念: 官方概念太无聊,并且冗余... 断言(assertion) 是一个全局函数 断言理解: 我理解的断言(...

  • Mock那些事儿(3):Mock的断言

    Mock的断言与unittest的断言不同,unittest的断言是判断结果是否正确,而mock的断言主要...

  • TestNG断言

    TestNG中的Assertion,也是断言。断言是测试中最难写的部分。 Assert类(硬断言) 断言类是Ass...

  • 2020-11-06 《批判性思维》day1 断言

    一、什么是断言? 在书中,断言是用来表达信念的,是一个陈述句,它可真可假。 二、类别 断言分为主观断言、客观断言这...

  • 一言力之断言力

    所谓断言,即明确表达说话人的意思;断言力,即敢于冒险提出断言的能力!断言力有什么用 通过断言,可以自然而然的产生一...

网友评论

      本文标题:ruby断言小花招

      本文链接:https://www.haomeiwen.com/subject/vulncktx.html