require "./spec_helper"
describe Fizzbuzz do
it "shouldn't divide 1 by 3" do
div_by_three(1).should eq(false)
end
it "should divide 3 by 3" do
div_by_three(3).should eq(true)
end
end
运行一下:
$ crystal spec
.F
Failures:
1) Fizzbuzz should divide 3 by 3
Failure/Error: div_by_three(3).should eq(true)
expected: true
got: false
# ./spec/fizzbuzz_spec.cr:9
Finished in 0.83 milliseconds
2 examples, 1 failures, 0 errors, 0 pending
Failed examples:
crystal spec ./spec/fizzbuzz_spec.cr:8 # Fizzbuzz should divide 3 by 3
有一个错误,解决它:
require "./fizzbuzz/*"
def div_by_three(n)
if n % 3 == 0
true
else
false
end
end
$ crystal spec -v
Fizzbuzz
shouldn't divide 1 by 3
should divide 3 by 3
shouldn't divide 8 by 5
should divide 5 by 5
shouldn't divide 13 by 15
should divide 15 by 15
Finished in 0.61 milliseconds
6 examples, 0 failures, 0 errors, 0 pending
100.times do |num|
answer = ""
if div_by_fifteen num
answer = "FizzBuzz"
elsif div_by_three num
answer = "Fizz"
elsif div_by_five num
answer = "Buzz"
else
answer = num
end
puts answer
end
由于 if 语句要返回值,所以我们因该这样:
(1..100).each do |num|
answer = if div_by_fifteen num
"FizzBuzz"
elsif div_by_three num
"Fizz"
elsif div_by_five num
"Buzz"
else
num
end
puts answer
end