【发布时间】:2017-09-29 14:12:09
【问题描述】:
我有一个测试文件,其中包含要在我的另一个文件上运行的测试列表,这些测试需要一个错误日期的断言
require "minitest/autorun"
require "./simple_date"
describe SimpleDate do
it "works as expected" do
assert_raises { SimpleDate.new(1969, 12, 31) }
assert_raises { SimpleDate.new(2016, 1, 32) }
assert_raises { SimpleDate.new(2016, 2, 30) }
assert_raises { SimpleDate.new(2016, 3, 32) }
assert_raises { SimpleDate.new(2016, 4, 31) }
# ... there are more this is just a sample
end
我的其他文件的这一部分有效:
require 'date'
class SimpleDate
attr_reader :year, :month, :day
def initialize(year, month, day)
if !year.between?(1970, 2020)
raise 'Error: Year not betwen 1970 and 2020'
elsif !month.between(1, 12)
raise 'Error: Month not between 1 and 12'
elsif !day.between?(1, 31)
raise 'Error: Day not between 1 and 31'
end
我其他文件的这部分不起作用。
begin
Date.parse(year, month, day)
rescue
raise 'Date Format Error'
end
你能帮我更好地格式化我的第二部分,以便它通过测试吗?
【问题讨论】:
标签: ruby function if-statement automated-tests