草庐IT

assert_difference

全部标签

ruby-on-rails - rails : Difference between timezones in hours

我想说user1比user2早4小时,这是根据用户在其帐户中指定的时区计算的。使用以下代码:time1=Time.zone.now.in_time_zone(user1.time_zone)time2=Time.zone.now.in_time_zone(user2.time_zone)distance_of_time_in_wordstime1,time2...相差不到一分钟-同样减去两次得到0。Rails显然仍然认为这两次相同。知道如何计算两个时区之间的差异吗? 最佳答案 如果您使用time1实例并对其调用utc_offset,

javascript - Minitest 的 assert_select 的 capybara 等价物是什么?

我是测试新手,所以如果我的方法有问题,请随时纠正我。我正在使用Minitest测试Rails4应用程序。由于我在许多页面中包含JS,因此我使用Capybara在我的测试中使用JS驱动程序,并且能够触发JS事件并测试预期结果。我的困惑开始了,因为有很多方法可以包含capybara。此外,我发现“正常的”断言式语法不适用于Capybara。在这里,我的困惑达到了顶峰。在我的研究过程中,我发现有一个Spec-styleDSLforCapybara以及其他一些。现在我使用gem'minitest-rails-capybara'(Github),并尝试使用此列表中的方法/DSL:RubyDoc我

Ruby:如何使用 assert_nothing_raised?

assert_nothing_raiseddo@board.make_move(0,0,Board::HUMAN)end文档说:Passesifblockdoesnotthrowanything.Example:assert_nothing_throwndo[1,2].uniqend我的make_move方法:defmake_move(x,y,player)returnfalseend我得到错误:test_can_make_valid_move_in_the_first_row(BoardTest):ArgumentError:wrongnumberofarguments(1for2)

ruby-on-rails - 如何使用 'assert_difference' 为两个不同的对象断言两个不同的值?

我有以下测试:it'createaction:auserrepliestoapostforthefirsttime'dologin_asuser#ActionMailergoesupbytwobecauseauserwhocreatedatopichasanaccompanyingpost.#Oneemailforpostcreation,anotherforpostreplies.assert_difference(['Post.count','ActionMailer::Base.deliveries.size'],2)dopost:create,topic_id:topic.id

java - 从非 Java Ruby 迁移到 Groovy : Language Differences

使用我并不出色的Google技能,我未能找到适合Ruby程序员的Groovy教程。有很多政治文章(Ruby很棒!Groovy很棒!)和微小的对比,但我真的不在乎哪个更好。我比较了解Ruby(和Java),我想学习Groovy。有人会关心(提供一个惊人的链接或)标记两种语言在如何做事(句法、类声明、循环、block等)方面的一些差异吗?出于我的目的,您可以假设具备完整的Java能力来进行解释。同样,我对知道哪个更好不感兴趣。只需要知道如何做事.... 最佳答案 如果您了解Java,那么您能读到的最好的东西就是如何在Groovy中使用元

ruby-on-rails - 参数错误 : assertion message must be String or Proc using assert_select

我正在使用testunit2.4.0为Rails3.1应用编写Controller测试。我想断言某个标题没有出现在页面上。我像这样使用assert_select:assert_select'h1',{:text=>/KeyDates/,:count=>0}出现以下错误:ArgumentError:assertionmessagemustbeStringorProc:expectedbutwas.>()我已经追踪到assert_select调用build_message的事实,它创建了AssertionMessage的实例并将其传递给测试-单位的断言。然而,在testunit的2.2版(

ruby 正则表达式 : difference between new and union with a single regexp

我简化了示例。假设我有一个包含正则表达式代码的字符串。我希望正则表达式匹配一个文字点,因此我希望它是:\.所以我创建了以下Ruby字符串:"\\."然而,当我将它与Regexp.union一起使用来创建我的正则表达式时,我得到了这个:irb(main):017:0>Regexp.union("\\.")=>/\\\./这将匹配一个斜杠后跟一个点,而不仅仅是一个点。将之前的结果与此进行比较:irb(main):018:0>Regexp.new("\\.")=>/\./它给出了我想要的正则表达式,但没有所需的联合。您能解释一下为什么Ruby会那样做以及如何正确地合并正则表达式吗?使用的上下

c++ - constexpr if 和 static_assert

P0292R1constexprif已included,在C++17的轨道上。它看起来很有用(并且可以代替SFINAE的使用),但是关于static_assert的评论格式错误,不需要诊断在false分支中让我感到害怕:Disarmingstatic_assertdeclarationsinthenon-takenbranchofaconstexprifisnotproposed.voidf(){ifconstexpr(false)static_assert(false);//ill-formed}templatevoidg(){ifconstexpr(false)static_ass

c++ - constexpr if 和 static_assert

P0292R1constexprif已included,在C++17的轨道上。它看起来很有用(并且可以代替SFINAE的使用),但是关于static_assert的评论格式错误,不需要诊断在false分支中让我感到害怕:Disarmingstatic_assertdeclarationsinthenon-takenbranchofaconstexprifisnotproposed.voidf(){ifconstexpr(false)static_assert(false);//ill-formed}templatevoidg(){ifconstexpr(false)static_ass

c++ - 在 GoogleTest 中使用 ASSERT 和 EXPECT

虽然ASSERT_*宏会导致测试用例终止,但EXPECT_*宏会继续其评估。我想知道哪个是决定是否使用其中一个的标准。 最佳答案 当条件必须成立时使用ASSERT-如果不成立,测试就停在那里。当测试的其余部分在没有此条件的情况下没有语义时,请使用此条件。当条件应该成立时使用EXPECT,但在不成立的情况下,我们仍然可以从继续测试中获得值(value)。(不过,测试最终还是会失败。)经验法则是:默认使用EXPECT,除非你要求为其余的测试保留一些东西,在这种情况下你应该使用针对特定条件断言。这在primer中得到回应:UsuallyE