草庐IT

mock_accessor_c

全部标签

ruby - 当 attr_accessor 在类方法中时会发生什么?

所以我想到了这个,想知道当下面的一些事情完成后会发生什么。classTestdefself.abcattr_accessor:Johnendendobject=Test.newputs"beforecallingclassmethodabc:#{object.class.instance_methods(false)}"Test.abcputs"aftercallingclassmethodabc:#{object.class.instance_methods(false)}"这里我检查的是,getter和setter方法是否以这种方式创建。如果是这样,是那些实例方法或类方法。首先我创

带有 attr_accessor 的类上的 Ruby instance_eval

我了解instance_eval和class_eval之间的基本区别。我在玩弄时发现的是一些涉及attr_accessor的奇怪东西。这是一个例子:A=Class.newA.class_eval{attr_accessor:x}a=A.newa.x="x"a.x=>"x"#...expectedA.instance_eval{attr_accessor:y}A.y="y"=>NoMethodError:undefinedmethod`y='forA:Classa.y="y"=>"y"#WHATTT?这是怎么回事:instance_eval没有访问我们的A类(对象)然后它实际上将它添加到

ruby - attr_accessor 在写入时将 nil 转换为字符串

我有一个数据对象,其中包含许多用于各种输入的attr_accessor字段。我可以以某种方式定义类,以便所有字段的所有setter都将例如将值设置为空字符串而不是尝试的nil? 最佳答案 这里有一个小模块可以做到这一点:moduleNilToBlankAttrAccessordefnil_to_blank_attr_accessor(attr)attr_readerattrdefine_method"#{attr}="do|value|value=''ifvalue.nil?instance_variable_set"@#{attr

ruby - 如何使用 rspec/rspec-mocks stub 类方法

我正在使用rspec-mock进行测试驱动开发。我开始实现单个类并使用rspec-mock模拟/stub其他类。尚未实现的类的模拟对象效果很好。但是,当我尝试模拟一个尚不存在的类的类方法时,我没有成功。我的类“哈希”应该有一个类方法“calculate_hashes”接收文件名并返回哈希。我试过了allow(Hashes).toreceive(:calculate_hash)do|file|#looksupwhattoreturnend给出错误“Hashesisnotaclass”。然后我实现了一个类“Hashes”classHashesend然后只尝试以相同的方式对类方法进行stub

ruby - 轨道外的 cattr_accessor

我正在尝试使用google_searchruby库(代码如下)但它提示“cattr_accessor是一个未定义的方法”-任何想法为什么会这样或我如何解决它?require'rubygems'require'google_search'GoogleSearch.web:q=>"pinkfloyd" 最佳答案 cattr_accessor似乎是一个Rails扩展thatactslikeattr_accessor,butisaccessibleonboththeclassanditsinstances.如果您想复制cattr_acces

ruby-on-rails - Rails attr_accessor 和 attr_writer

新手提醒我正在观看RyanBate的一个关于虚拟属性的RailsCasts。他正在为博客平台上的一篇文章添加标签。http://media.railscasts.com/assets/episodes/videos/167-more-on-virtual-attributes.mp4有一次他有工作代码attr_accessor:tag_names在这个例子中,如果标签名称通过验证,则不会出现在表单中,因此他更改了属性的名称,并添加了一个方法,以便标签名称在不同字段出现验证错误时保持不变attr_writer:tag_namesdeftag_names@tag_names||tags.m

ruby-on-rails - 当需要 active_support 时,cattr_accessor 不工作(在 rails 之外)?

我不熟悉active_support,所以请多多包涵!Fox'slibrary允许通过谷歌的API进行搜索,但它需要积极的支持。我似乎无法让它工作!有什么想法吗?require'rubygems'require'active_support'require'google_search'pGoogleSearch.web:q=>"HelloWorld!"给我:NoMethodError:undefinedmethod‘cattr_accessor’forGoogleSearch:Class知道我做错了什么吗? 最佳答案 通过更多的谷歌

ruby - 使用 Minitest::Mock 验证从未调用过或仅调用过一次的方法

有什么方法可以使用Minitest::Mock验证从未调用过或仅调用过多次的方法提前致谢 最佳答案 具体次数:Minitest::Mock强制开发人员明确消息预期,因此如果您希望给定方法被调用x次,您需要非常直白。my_mock=Minitest::Mock.newx.times{my_mock.expect:some_method,:return_val}从未调用过:从哲学上讲,Minitest避免测试没有发生的事情。虽然不完全相似,但请查看thispost或谷歌“minitestassertnothingraised”。Mini

ruby-on-rails - NoMethodError:#<RSpec::ExampleGroups::CompetitionsController::Create> 的未定义方法 `mock'

Variants这个问题已被多次问到,但大多数都与摩卡有关,而我没有使用它。我是Rails的新手,所以这看起来微不足道,但我无法在我的规范文件中使用mock(用于名为competitions的Controller)。require'rails_helper'require'spec_helper'describeCompetitionsControllerdobefore:eachdo@fake_c=mock(Competition,:competition_id=>1,:competition_name=>'one',:competition_des=>'any')enddescri

ruby-on-rails - 与 attr_accessor 相比,ActiveRecord 如何定义方法?

ActiveRecord似乎定义实例方法的方式与attr_accessor不同。attr_accessor似乎没有为我新定义的属性定义super方法:classSomeClassattr_accessor:some_attributedefsome_attributesuperendend>>some_class=SomeClass.new>>some_class.some_attributeNoMethodError:super:nosuperclassmethod`some_attribute'for..鉴于ActiveRecord明确定义了一个super方法:classSomeC