小编Dav*_*uth的帖子

为什么Cucumber会引发AmbiguousStepDefinitionsException?

cucumber.runtime.AmbiguousStepDefinitionsException: ?.Given I am an admin user(src/test/resources/features/alerts.feature:9) matches more than one step definition:
  I am an admin in LoginStepDefinitions.iAmAnAdmin()
  ^I am an admin user$ in AlertsStepDefinitions.iAmAUser()

    at cucumber.runtime.RuntimeGlue.stepDefinitionMatch
Run Code Online (Sandbox Code Playgroud)

我给出了两个不同的定义.我不确定为什么会出现这个错误.

cucumber cucumber-jvm

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

EAFP vs LBYL:哪个是比较惯用的Ruby?

虽然我可以在Python 上找到有关“ EAFP vs. LBYL ”的大量信息,但我找不到关于Ruby的任何指南。我自己的经验是Ruby至少像Python一样支持异常处理,但是与整个社区相比,我自己的经验简直是九牛一毛。

那么哪种范式更惯用Ruby,EAFP或LBYL?此外,是否有任何重要的性能问题要考虑?

ruby exception-handling

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

是否有一个更像剁的红宝石切片?

chop 切断最后一个字符并返回剩余的字符串:

irb(main):011:0> "hello world".chop
=> "hello worl"
Run Code Online (Sandbox Code Playgroud)

slice 可以用来切断第一个字符

irb(main):013:0> str = "hello world"
=> "hello world"
irb(main):014:0> str.slice!(0)
=> "h"
irb(main):015:0> str
=> "ello world"
Run Code Online (Sandbox Code Playgroud)

是否有一个Ruby方法切断第一个字符,但然后返回字符串的其余部分?看起来就像

irb(main):011:0> "hello world".some_method
=> "ello world"
Run Code Online (Sandbox Code Playgroud)

ruby

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

持续集成和手动测试如何协同工作?

我正在我的项目中实施持续集成 (Jenkins) 和部署。我们正在做手动测试。

我的要求如下。

  1. 这些文件将在开发后移动到 QA 服务器。
  2. 测试后,文件将移至 UAT 并从那里移至生产环境。

任何人都可以建议如何在此处自动化该过程,因为我们正在进行手动测试?只有在修复所有错误后,我才需要触发部署。

continuous-integration continuous-deployment jenkins continuous-delivery jenkins-workflow

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

加速Ruby中最强大的素因子程序

一个简单的程序,用于在Ruby中查找数字的最大素数因子,由2种方法组成:

def is_prime?(n)
  (2..n).select {|number| n % number == 0}.length == 1 ? true : false
end

def prime_factors(number)
  (1..number).select {|m| number % m == 0 && is_prime?(m) == true}.max
end
Run Code Online (Sandbox Code Playgroud)

它适用于像100这样的小数字.但是,我正在尝试使用数字600851475143解决Project Euler上的问题.当尝试此问题时,问题甚至不会运行,我最终在大约一分钟后取消它.

如何改变这一点以提高性能?

ruby algorithm performance primes

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

如何在Ruby中查找,返回和删除数组中的最大值?

我想在整数数组中找到最大值,返回该值,并将其从数组中删除.这有内置功能吗?

因为a = [1,2,3,4],我可以很容易地做到这a.max一点返回4.但是,a[....]保持不变.

ruby arrays

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

无论如何,这是谁的责任?

在我写的应用程序中,我有一个Policy类.有4种不同类型的政策.每个策略都针对其他策略进行加权,例如PolicyA> PolicyB> PolicyC> PolicyD.

谁负责实施逻辑来确定一个政策是否比另一个更好?我最初的想法是重载>和<运算符并在Policy类型本身中实现逻辑.

这会违反SRP吗?

single-responsibility-principle solid-principles

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

对于难以解决的错误,您的最佳做法是什么?

我有时会发现自己试图修复一个顽固的虫子,只是在一段时间后才发现一些非常明显的错误.

当我认为这个问题与某些事情有关时,我会发生这种情况,并且我会对其他可能出错的事情"盲目".

大部分时间都有助于睡眠,第二天早上我立即看到了问题.

过去发生在我身上的事情:

  1. 编辑没有任何效果的真实源文件的副本.
  2. 没有关注真正的问题,而是在真正的问题已经解决的同时试图解决问题.
  3. 没有进行编译/构建,因为我之前使用的是解释语言.

在调试过程中你有什么'盲目'的体验?

language-agnostic debugging

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

在CQRS系统中,我应该如何向用户显示他们的请求已被收到?

我正在尝试将我们的大球体系结构中的一些部分分离,并确定了几个明显可以选择使用CQRS来提供更具弹性和可扩展性的解决方案的边界.

典型示例:当客户下订单时,我们在订单提交付款时批准其线程,由销售系统批准等等.

这可以全部异步处理 - 允许我们在支付处理系统不可用时接受和排队订单等 - 但我不确定如何管理客户的UI数据.

换句话说 - 他们下订单.他们的订单排在队列中.如果他们在五秒钟后重新登录帐户并点击"查看订单" - 会发生什么?

  • 如果我从中央仓库(或从基于该仓库更新的缓存)中抽取它,那么用户将不会看到他们的订单并且可能会尝试再次放置它 - 或者给我们打电话和恐慌.
  • 如果我从本地数据库中绘制它,那么我有维护另一个订单数据库的开销- 这需要在负载均衡的环境中同步,并且似乎破坏了CQRS的许多优点.

我想在很多地方做这件事 - 而且并非所有这些行动都像确认订单一样重要; 在某些情况下,它就像客户更改电话号码一样简单 - 所以他们并不是所有我只能说"非常感谢,我们会向您发送确认电子邮件"的情况 - 因为发送确认电子邮件每次修改记录的邮件都让我觉得有些过分.

我应该看看任何模式或解决方案来帮助解决这个问题?

msmq nservicebus cqrs

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

与红宝石规格混淆

spec/rspec和mspec之间的区别是什么?在ruby spec home中,它说我们应该使用mspec命令.

但其他一些人说它应该是'spec kind_of_spec.rb'.

有人说我们应该使用'rspec'.

这三个模块的区别是什么?

ruby specifications mspec-ruby

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