(´-`). oO (표준 출력의 「Hello」를 간편하게 찾고 싶다.
오늘은 ``Hello World''를 출력하는 rake 작업을 만들었습니다.
# rake hoge:hello
"Hello World"
결과에 「Hello」가 포함되어 있는 것을 확인하는 테스트를 쓰고 있어, 간결하게 캐릭터 라인 지정으로 찾을 수 있는 방법이 있으면 좋다고 생각했습니다만. . .
코드
hoge_spec.rb
require 'rails_helper'
require 'rake'
RSpec.describe 'Hoge', type: :task do
# 中略
describe 'rake hoge:hello' do
let(:task) { 'hoge:hello' }
context '標準出力のHelloを探せ' do
it '標準出力でHello #1 outputマッチャーの引数に文字列' do
# ※理想型。ただし完全一致しないので失敗する。。。
expect{ @rake[task].invoke() }.to output('Hello').to_stdout
end
it '標準出力でHello #2 outputマッチャーの引数に正規表現' do
# ※うまくいくけど正規表現のマッチ使いにくい。。。
expect{ @rake[task].invoke() }.to output(/Hello/).to_stdout
end
it '標準出力でHello #3 includeで部分一致' do
# ※うまくいくけどコードが長い。。。
$stdout = StringIO.new
@rake[task].invoke()
output_text = $stdout.string
$stdout = STDOUT
expect(output_text).to include 'Hello'
end
end
end
end
실행 결과
··· 문자열 지정 (# 1)으로 할 수 있으면 좋다고 생각했습니다만 에러.
목적을 실현하기 위해서는 정규 표현(#2)으로 하거나 표준 출력을 변수에 대입한다(#3) 밖에 방법을 발견하지 않는다. . .
뭔가 좋은 방법이 없다고 생각합니다.
Reference
이 문제에 관하여((´-`). oO (표준 출력의 「Hello」를 간편하게 찾고 싶다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hamkiti/items/4049e60f25c758ef8766텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)