Rails /工具特定版本:您的单元测试有多深?
现在,我现在写道:
有时这是完全必要的; 有必要测试模型中对最终用户来说并不完全明显或可见的行为.当模型很复杂时,一定要进行测试.但有时候,在我看来,测试是多余的.举例来说,你的测试方法foo如果只是通过所谓的bar,并bar进行测试?如果bar是在Cucumber特性中使用并且可以在黄瓜特征中轻松测试的模型上的简单辅助方法怎么办?你在rspec和Cucumber中测试方法吗?我发现我自己为此而努力,为编写更多的测试需要时间和保持什么是有效的同样的行为,这使得维护测试套件的更多的时间密集,这反过来又使修改更昂贵的多个"版本".
简而言之,您是否认为有时候只写Cucumber功能就足够了?或者你应该总是在每个级别测试?如果您认为存在灰色区域,那么"这需要功能/单元测试"的阈值是多少.实际上,你现在做什么,为什么(或为什么不)你认为这已经足够了?
编辑:这是一个可能是"测试矫枉过正"的例子.不可否认,我能够很快写出来,但这完全是假设的.
直到最近,我已经在所有服务器项目中使用MySQL来满足我所有的数据库需求.
然而,在甲骨文出现并购买MySQL之后,似乎对MySQL的未来存在一些不确定性.
所以我想知道我是否应该坚持使用MySQL(我非常熟悉),或者我应该切换到像PostgreSQL这样的东西.有什么想法吗?
是否有人安装了git和ControlControl,并在Windows 2003服务器上从GitHub获取了CruiseControl.
我一直在' public key errors (access denied)' - 我认为这是好的,因为这证实了git正在与GitHub交谈.
然而,不好的是我不知道在哪里安装rsa密钥,因此它们将被正在运行的进程(在上下文中的git)中选取cc.net.
任何帮助都会为我节省很多头发!
我试过安装钥匙;
c:\Program Files\Git.ssh
Run Code Online (Sandbox Code Playgroud)
跑步git bash然后cd ~带我去:c:\Program Files\Git
来自CC.net错误消息的当前错误:
ThoughtWorks.CruiseControl.Core.CruiseControlException:
Source control operation failed: Permission denied (publickey). fatal:
The remote end hung up unexpectedly .
Process command: C:\Program Files\Git\bin\git.exe fetch origin
Run Code Online (Sandbox Code Playgroud)
提前致谢
$ git push heroku master
Run Code Online (Sandbox Code Playgroud)
我基本上得到这个错误信息.
error: src refspec master does not match any.
error: failed to push some refs to 'git@heroku.com:falling-stone-505.git'
Run Code Online (Sandbox Code Playgroud)
我对计算机编程和轨道上的ruby非常陌生,因此我们将非常感谢解决这个问题的"白痴"指南.
提前致谢.
我有一个简单的Sinatra应用程序,使用模块化样式进行配置.当我rackup -p 4567按照自述文件中的建议使用应用程序启动应用程序时,不会提供公用文件夹中的静态资源.但是当我开始使用时,shotgun ./config.ru -p 4567他们就会得到服务.为什么会这样?这可能发生在生产中吗?
这是我的代码:
# config.ru
require 'rubygems'
require 'bundler'
require 'sinatra'
require 'jammit'
Bundler.require
Jammit.package!
require File.expand_path('./stick.rb')
run Stick
Run Code Online (Sandbox Code Playgroud)
这是应用程序ruby文件
require 'sinatra/base'
class Stick < Sinatra::Base
get '/' do
haml :index
end
end
Run Code Online (Sandbox Code Playgroud) 我有一个从自定义类创建的对象数组.自定义类有一些属性,我想通过其中一个属性对数组进行排序?有没有一种简单的方法在ruby上实现它,或者我应该从头开始编码?
例:
class Example
attr_accessor :id, :number
def initialize(iid,no)
@id = iid
@number = no
end
end
exarray = []
1000.times do |n|
exarray[n] = Example.new(n,n+5)
end
Run Code Online (Sandbox Code Playgroud)
在这里,我想通过其elements number属性对exarray进行排序.
我知道zsh的能力:
ls -1 >foo >bar
Run Code Online (Sandbox Code Playgroud)
但是,假设我想通过另一个命令运行两个输出.例如,我如何组合这两个命令以避免运行mysqldump两次?
mysqldump db1 | bzip2 > db1.sql.bz2
mysqldump db1 | mysql db2
Run Code Online (Sandbox Code Playgroud)
我能想到的最接近的是:
mysqldump db1 >db1.sql | mysql db2
bzip2 db1.sql
Run Code Online (Sandbox Code Playgroud)
但我宁愿不将文件写入未压缩的磁盘(它很大!).
有人可以建议在Ruby on Rails中为文本字段设置提示文本(而不是默认文本)的最佳方法.目前我正在使用这个:
<%= text_field_with_auto_complete
"customer",
:contact_person, {
:value => 'last, first',
:style => 'color:#aaa;width:11em;',
:onfocus => "if(this.getValue()=='last, first'){this.clear();this.style.color = '#000';}",
:onblur => "if(this.getValue()==''){this.setValue('last, first');this.style.color = #aaa';}"
} %>
Run Code Online (Sandbox Code Playgroud)
文本字段附加到模型,然后附加到数据库中的值.此外,index.html中使用的相同html也在edit.html中使用,因此当我尝试编辑该字段时,默认值显示而不是数据库中的值.这样做的正确方法是什么?
注意:我不是要设置默认值,而只是提示需要在文本框中输入的内容.
谢谢,
拉贾拉姆
使用会heroku restart导致数据丢失吗?是否在重新启动期间使用了最后一个数据库备份,或者数据库是否未受影响?
我想知道Heroku是否仍然支持组织帐户.我已按照此页面上的步骤操作,无法查看组织创建表单.
任何人都知道该功能是否仍然可用?
我喜欢你可以通过键入几个单词并按下键来自动完成MATLAB中的先前命令.同样适用于python IDLE.在unix shell中有相同的吗?如果它有帮助,我正在使用csh.