草庐IT

assert_equal

全部标签

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

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版(

sql - ruby rails : Query where date equals another date (ignoring time)

我正尝试在我的模型上执行此查询,但我无法弄明白。事件有日期。我有一个名为“array_of_dates”的日期数组,我是从另一个模型构建的:array_of_dates=[]user.eachdo|user|array_of_datesuser.birthday_date当然是日期时间我试过了Event.where("datein(?)",array_of_dates)但是,事件日期也有一个时间集。我想忽略这里设置的时间,因为我只是在寻找那一天。我试过将user.birthday_date解析为另一种格式,但我不知道如何从事件模型中更改“日期”的格式。感谢您的帮助!

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++ equal(==) 重载、快捷方式或比较所有属性的最佳方法

我必须在C++中为具有许多属性的类重载==运算符。当且仅当所有属性都相等时,运算符应该返回true。如果这些属性随时间发生变化,则可以使用快捷方式来避免错误。有比较一个类中每个属性的快捷方式吗? 最佳答案 没有捷径。您必须列出所有内容。通过引入一个名为tied()的成员函数可以减少一些错误来源,例如:structFoo{Aa;Bb;Cc;...private:autotied()const{returnstd::tie(a,b,c,...);}};这样您的operator==就可以使用它:booloperator==(Foocons

C++ equal(==) 重载、快捷方式或比较所有属性的最佳方法

我必须在C++中为具有许多属性的类重载==运算符。当且仅当所有属性都相等时,运算符应该返回true。如果这些属性随时间发生变化,则可以使用快捷方式来避免错误。有比较一个类中每个属性的快捷方式吗? 最佳答案 没有捷径。您必须列出所有内容。通过引入一个名为tied()的成员函数可以减少一些错误来源,例如:structFoo{Aa;Bb;Cc;...private:autotied()const{returnstd::tie(a,b,c,...);}};这样您的operator==就可以使用它:booloperator==(Foocons

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

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

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

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

C++11 static_assert 和模板实例化

在C++11中,模板内的static_assert操作是否应该取决于该模板是否已被实例化?比如下面的代码templatevoidsa(){static_assert(0,"Hello.");}intmain(intargc,char*argv[]){return0;}GCC4.5.0将使断言失败,并产生“Hello”。信息。另一方面,数字火星编译器版本8.42n不提供任何消息。 最佳答案 GCC是正确的,其他编译器也是正确的。引用规范中的14.6p8Ifnovalidspecializationcanbegeneratedforat