テストコードについて

使用ライブラリ

  • バック(Rails Rspec)
  • フロント(Vue.js test-utils/Jest)
  • テスト(cucumber/capybara/webdriver)

■Rspec

  • Rspec.describe "" do ...テスト前に書くこと
  • it "xx" do ...固定値設定とか
  • expect().to eq xx ...値の検証
  • conrtext...機能でグルーピング
  • before...テスト前の値のセット
  • let(:params)...インスタンス変数の共通化
  • subject ... is_expected ...テスト目標
  • 以下の書式でテストコードを書いていく


RSpec.describe User do
  describe '#greet' do
    let(:user) { User.new(params) }
    let(:params) { { name: 'たろう', age: age } }
    context '12歳以下の場合' do
      let(:age) { 12 }
      it 'ひらがなで答えること' do
        expect(user.greet).to eq 'ぼくはたろうだよ。'
      end
    end
    context '13歳以上の場合' do
      let(:age) { 13 }
      it '漢字で答えること' do
        expect(user.greet).to eq '僕はたろうです。'
      end
    end
  end
end

参考:使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する


■test-utils
  • テスト対象のコンポーネントをimportする
  • const wrapper = mount(テスト対象)で対象コンポーネントをテスト可能状態にする
  • const vm = wrapper.vmでインスタンスへのアクセス許可
  • 以下の書式でテストコードを書く
it( "",() => {
 expect(wrapper().toBe())
})

実例
  // 要素の存在を確認することも簡単です
  it('has a button', () => {
    expect(wrapper.contains('button')).toBe(true)
  })
■Jest
テストランナー
function sum(a, b) { return a + b; } module.exports = sum;
---
const sum = require('./sum'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });

参考:Jest

■Capybara
RubyのUIテスト
テストドライバーの設定
テストしたい要素:DOM-idを指定
アクセス->要素の検索->要素の値を変化->要素の状態を確認


■cucumber

・Cucumberの構造
Cucumberを利用するために、記述すべきファイルは2種類あります。
Featureファイル
 →テストのシナリオを書くファイル
Stepファイル
 →シナリオの動作を定義するファイル

・Cucumberを使用したテストシナリオ
Cucumberのテストシナリオは、GherkinというDSLで書きます。
主に「Given、When、Then」というステップがあります。

  •  Given:前提
  •  When:処理内容
  •  Then:その結果(に対する検証)
という理解をしていただければ良いと思います。

Next Post Previous Post
No Comment
Add Comment
comment url