小编wup*_*tah的帖子

使用Cucumber和rspec的BDD - 何时多余?

Rails /工具特定版本:您的单元测试有多深?

现在,我现在写道:

  • 黄瓜功能(集成测试) - 这些测试针对我们的应用程序返回的HTML/JS,但有时也会测试其他内容,例如调用第三方服务.
  • RSpec控制器测试(功能测试),最初只有控制器有任何有意义的逻辑,但现在越来越多.
  • RSpec模型试验(单元试验)

有时这是完全必要的; 有必要测试模型中对最终用户来说并不完全明显或可见的行为.当模型很复杂时,一定要进行测试.但有时候,在我看来,测试是多余的.举例来说,你的测试方法foo如果只是通过所谓的bar,并bar进行测试?如果bar是在Cucumber特性中使用并且可以在黄瓜特征中轻松测试的模型上的简单辅助方法怎么办?你在rspec和Cucumber中测试方法吗?我发现我自己为此而努力,为编写更多的测试需要时间和保持什么是有效的同样的行为,这使得维护测试套件的更多的时间密集,这反过来又使修改更昂贵的多个"版本".

简而言之,您是否认为有时候只写Cucumber功能就足够了?或者你应该总是在每个级别测试?如果您认为存在灰色区域,那么"这需要功能/单元测试"的阈值是多少.实际上,你现在做什么,为什么(或为什么不)你认为这已经足够了?


编辑:这是一个可能是"测试矫枉过正"的例子.不可否认,我能够很快写出来,但这完全是假设的.

tdd unit-testing rspec ruby-on-rails cucumber

38
推荐指数
1
解决办法
3241
查看次数

MySQL仍然是免费/开源数据库的不错选择吗?

直到最近,我已经在所有服务器项目中使用MySQL来满足我所有的数据库需求.

然而,在甲骨文出现并购买MySQL之后,似乎对MySQL的未来存在一些不确定性.

所以我想知道我是否应该坚持使用MySQL(我非常熟悉),或者我应该切换到像PostgreSQL这样的东西.有什么想法吗?

mysql database postgresql

16
推荐指数
2
解决办法
2万
查看次数

获取CruiseControl以使用正确的公钥与github通信

是否有人安装了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)

提前致谢

windows git cruisecontrol.net ssh github

11
推荐指数
2
解决办法
4035
查看次数

Ruby on rails和Heroku问题

$ 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非常陌生,因此我们将非常感谢解决这个问题的"白痴"指南.

提前致谢.

git ruby-on-rails heroku

11
推荐指数
1
解决办法
4519
查看次数

使用rackup时未找到Sinatra静态资产

我有一个简单的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 configuration sinatra

10
推荐指数
1
解决办法
6157
查看次数

按ruby中数组的元素属性排序

我有一个从自定义类创建的对象数组.自定义类有一些属性,我想通过其中一个属性对数组进行排序?有没有一种简单的方法在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进行排序.

ruby arrays sorting

8
推荐指数
1
解决办法
6928
查看次数

将stdout传递给多个进程[zsh]

我知道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)

但我宁愿不将文件写入未压缩的磁盘(它很大!).

zsh pipe

5
推荐指数
2
解决办法
1735
查看次数

在Ruby on Rails中的文本字段中设置提示文本

有人可以建议在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中使用,因此当我尝试编辑该字段时,默认值显示而不是数据库中的值.这样做的正确方法是什么?

注意:我不是要设置默认值,而只是提示需要在文本框中输入的内容.

谢谢,

拉贾拉姆

ruby-on-rails hint textfield

5
推荐指数
1
解决办法
2551
查看次数

heroku restart - 这是否会导致数据丢失

使用会heroku restart导致数据丢失吗?是否在重新启动期间使用了最后一个数据库备份,或者数据库是否未受影响?

ruby-on-rails heroku

3
推荐指数
1
解决办法
3564
查看次数

Heroku组织仍然可用?

我想知道Heroku是否仍然支持组织帐户.我已按照此页面上的步骤操作,无法查看组织创建表单.

任何人都知道该功能是否仍然可用?

heroku

3
推荐指数
1
解决办法
1376
查看次数

对于以前输入的命令,在unix中是否有方便的自动完成功能,如在MATLAB中?

我喜欢你可以通过键入几个单词并按下键来自动完成MATLAB中的先前命令.同样适用于python IDLE.在unix shell中有相同的吗?如果它有帮助,我正在使用csh.

unix shell csh

1
推荐指数
1
解决办法
1589
查看次数