Transpec

RSpec 语法转换器
授权协议 MIT
开发语言 Ruby
所属分类 程序开发、 代码生成工具
软件类型 开源软件
地区 不详
投 递 者 钱远
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Transpec 是一种可通过静态和动态代码分析将你的规范转换为最新的 RSpec 语法的工具使用 Transpec,可以立即将 RSpec 2 规格升级到 RSpec 3。它支持转换几乎所有的 RSpec 的三个变化。

例子

这是一个示例规范:

describe Account do
  subject(:account) { Account.new(logger) }
  let(:logger) { mock('logger') }

  describe '#balance' do
    context 'initially' do
      it 'is zero' do
        account.balance.should == 0
      end
    end
  end

  describe '#close' do
    it 'logs an account closed message' do
      logger.should_receive(:account_closed).with(account)
      account.close
    end
  end

  describe '#renew' do
    context 'when the account is not closed' do
      before do
        account.stub(:closed?).and_return(false)
      end

      it 'does not raise error' do
        lambda { account.renew }.should_not raise_error(Account::RenewalError)
      end
    end
  end
end

Transpec 会将其转换为以下形式:

describe Account do
  subject(:account) { Account.new(logger) }
  let(:logger) { double('logger') }

  describe '#balance' do
    context 'initially' do
      it 'is zero' do
        expect(account.balance).to eq(0)
      end
    end
  end

  describe '#close' do
    it 'logs an account closed message' do
      expect(logger).to receive(:account_closed).with(account)
      account.close
    end
  end

  describe '#renew' do
    context 'when the account is not closed' do
      before do
        allow(account).to receive(:closed?).and_return(false)
      end

      it 'does not raise error' do
        expect { account.renew }.not_to raise_error
      end
    end
  end
end

安装

只需使用gem命令安装transpec

$ gem install transpec

基本用法

在转换您的规格之前:

  • 确保您的项目具有rspecgem 依赖项 2.14 或更高版本。如果没有,请更改你的Gemfile*.gemspec
  • 运行rspec并检查所有规格是否通过。
  • 确保 Git 存储库是干净的

然后,在项目根目录下运行transpec

$ cd some-project
$transspec

这将运行规范,转换它们,并覆盖spec目录中的所有规范文件

转换后,rspec再次运行,检查是否一切仍然是绿色的:

$ bundle exec rspec

如果它是绿色的,请使用自动生成的消息提交更改,该消息描述转换摘要并帮助您的团队成员理解新语法:

$ git commit -aeF .git/COMMIT_EDITMSG
 相关资料
  • 问题内容: 我想转换以下查询: 它与Oracle连接语法等效。我的第一次尝试: 由于“ ORA-01417:一个表最多可以外部连接到另一个表”错误而无法正常工作。 我意识到Oracle建议使用ANSI方法,但是我受到以下Oracle错误的“折磨”: http://awads.net/wp/2007/06/14/when-ansi-sql-join-syntax-does-not-work-in-

  • 问题内容: 我想使用PostgreSQL 9.3将计算出的值转换为data type 。 我的第一次尝试: 给我这个错误: 我的第二次尝试: 给我这个错误: 问题答案: 您需要使用以下语法:

  • 我不知道我在这方面哪里出了问题,我正在尝试在recyclerView中列出食谱的成分,我只是无法让onBindViewHolder工作,不管我尝试了什么。下面是适配器代码以及xml配方。班本质上,我需要向recyclerView显示Recipe类的结果。 食谱班 适配器 完整logcat RecipeList模型公共类RecipeList{ 更新的错误 尝试在空对象引用上调用虚方法“空androi

  • 我有三个表示cron数据的变量,例如: 这些值将用于调度运行脚本的cron作业。后来,我意识到需要进行REST调用并传递一个UTC格式的参数。 如何使用ruby将上述值转换为UTC格式的datetime值? 提前感谢!

  • 类型转换用于将一种数据类型的变量转换为另外一种类型的变量。Go 语言类型转换基本格式如下: type_name(expression) type_name 为类型,expression 为表达式。 实例 以下实例中将整型转化为浮点型,并计算结果,将结果赋值给浮点型变量: package main import "fmt" func main() { var sum int = 17

  • 我环顾四周,找不到一种自动完成这项工作的方法。所以: 我在vim中内置了一些语法高亮,我想转移到vscode。我至少有两个部分卡住了。 到目前为止,我的情况是这样的:我已经构建了一个vscode语言扩展——设置了一些基本的语法规则,并将其复制到vscode config文件夹中。 我遇到麻烦的部分-我可以在某些字段的含义中澄清一下-命名约定。 和语法的嵌套解析,这些东西只出现在其他元素中。 下面是

  • 在Swift中,我使用kCFStringTransformToLatin将日语转换为Romaji,将汉语转换为拼音。在Java中有什么可以与Android相媲美的吗?或者我必须导入一些库(正如在这里的几篇文章中讨论的那样)。如果是,建议哪一个?

  • 任何帮助都将不胜感激!