0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

抹殺世界 paiza D問題「荒れ果てた警察署」のテストコード

Last updated at Posted at 2019-02-04

paizaエンジニア抹殺世界

問題文要約。

0から9の数字を3つ入力すると開く扉があるとする
鍵の番号は左から 2 つまで判明しており、3つ目は以下の法則で決まる

・判明している二つを足して10で割ったときの余り

2つ目までの数字を与えるので3つ目を求める

テストコードの大枠を作る

spec/paiza_lebelD_spec.rb
require 'spec_helper'

RSpec.describe Lebel_D do
    
end

class名だけ作る

lib/lpaiza_lebelD.rb
class Lebel_D
    
end
$ bundle exec rspec
0 examples, 0 failures

## テストコード

判明している二つの数字を引数にする(num_1,num_2)
期待する結果は2なのでイコールの右には2を置く

spec/paiza_lebelD_spec.rb
RSpec.describe Lebel_D do
  it '荒れ果てた警察署' do
    result = Lebel_D.new.key(num_1: 4, num_2: 8)
    expect(result).to eq 2
  end
end
$ bundle exec rspec
undefined method `key' for #<Lebel_D:0x00007fc72591ae08>

メソッドを作る

lib/lpaiza_lebelD.rb
class Lebel_D
    def key(num_1:, num_2:)
    end
end

keyメソッドに二つの引数を渡す

$ bundle exec rspec
  1) Lebel_D 荒れ果てた警察署
     Failure/Error: expect(result).to eq 2

       expected: 2
            got: nil

エラーメッセージが変わりました

期待していた「2」ではなく「nil」が帰ってきた

メソッドの中身を書く

lib/lpaiza_lebelD.rb
class Lebel_D
    def key(num_1:, num_2:)
      add = num_1 + num_2   //与えられた数字すべてを足して
      remainder = add % 10  //10で割ったときの余りを戻り値として返す
    end
end
$ bundle exec rspec
1 example, 0 failures

オールグリーン

リファクタリング

意味なし最終コード

lib/lpaiza_lebelD.rb
class Lebel_D

  def initialize(num_1:, num_2:)
    @add = num_1 + num_2
  end
  
  def key
    remainder = @add % 10
  end
end
spec/paiza_lebelD_spec.rb
require 'spec_helper'

RSpec.describe Lebel_D do
  let(:number) { Lebel_D.new(num_1: 4, num_2: 8) }
  it '荒れ果てた警察署' do
    expect(number.key).to eq 2
  end
end

rspec入門はこちらから
https://qiita.com/jnchito/items/42193d066bd61c740612

見てくれてありがとう!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?