如何使用 rspec 测试 Ruby on Rails 3 中的日期?

发布于 2024-11-28 19:11:45 字数 282 浏览 3 评论 0原文

举例来说,我有一个日期字段或 3 个选择字段(日月和是)。

最终选择的日期如何发送到数据库?或者不以什么格式发送?

20110803?

2011-08-03 ?

我想要做的是:

  1. 测试有效日期(已选择的日期存在)
  2. 测试无效日期(无效日期不存在,也没有选择

任何内容) 我知道知道如何编写这些测试,但不确定实际发送到数据库的内容 保存之前实际出现的内容以及格式。细绳?整数?

预先感谢您的回复。

Say for instance I have a datefield or 3 select fields for day month and yea..

How does the final selection of date get sent to the database? or in what format doesn't it get sent?

20110803 ?

2011-08-03 ?

What I want to do is:

  1. Test for a valid date (a date that has been selected that exists)
  2. Test for an invalid date (invalid would be a date that doesn't exist and also be when nothing has been selected)

I know an idea of how to write these tests but not sure what actually gets sent to the database
What actually appears before save and in what format. String? Integer?

Thanks in advance for responses.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感情旳空白 2024-12-05 19:11:45

按照数据库的预期发送到数据库。每个数据库和配置都会生成不同的日期格式,但这对您来说不会有任何区别,因为该字段配置为日期,并且它也将是日期在 Rails 上,所以你不应该关心格式。

在测试时,您可以通过多种方式进行验证,但您不会使用整数或字符串,而是使用 Date 对象。以下是如何编写第一个示例:

it 'should find a model today' do 
  @date = Date.today
  @model = Model.create!(:date => @date)
  Model.first( :conditions => {:date => @date}).should == @model 
end

The gets sent to the database as the database expects it. Each database and configuration will yield a different format for a date but this will not make any difference to you as the field is configured to be Date and it will also be a Date on Rails, so you should not care about the format.

While testing, there are many ways you can validate, but you will not be using neither integer or string, you're using Date objects. Here's an example of how you could write the first one:

it 'should find a model today' do 
  @date = Date.today
  @model = Model.create!(:date => @date)
  Model.first( :conditions => {:date => @date}).should == @model 
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文