スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランス6期目となる自身の実体験から、フリーランスエンジニアになるためのノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

RSpecで、Base64エンコードされた画像ファイルをテストする

※提携先の広告(リンク、バナー等)を含む場合があります


RSpecで、Base64エンコードされた画像ファイルをテストする


こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。


このブログでは、

僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、

ノウハウなどを書いていきます。


今回は、

  • RSpecで、Base64エンコードされた画像ファイルをテストする

です。


RSpecで、Base64エンコードされた画像ファイルをテストする



【結論】


1、 テストに使う画像ファイルを、Base64でエンコードしたバイナリ文字列に変換する

(下記のようなサイトを使うとラクです)

https://lab.syncer.jp/Tool/Base64-encode/


2、 1で得たバイナリ文字列から、spec/以下に画像ファイルを作る

(ファイル名は適当に spec/assets/images/test_jpg.bin みたいにする。拡張子はバイナリを表すbin)


3、 RSpec内で、

  • File.read(spec/assets/images/test_jpg.bin)

のようにすれば、

1の画像ファイルを読み込みでき、

Base64エンコードされたバイナリ文字列を取得できます。

あとは好きにテストで使いましょう。


〜補足〜


app/assets/以下に画像を置いた場合、

画像のパスを直指定すると、

画像を外部から閲覧できてしまいます。


例:

というサイトと、

  • assets/images/speaker.png

という画像ファイルがあるとします。


この場合に、

のようにURL指定すると、

speaker.pngを見れてしまうということです。


テストデータを外部に見せる必要はないので、

画像ファイルの配置場所には注意しましょう。


ちなみに、

今回の例で紹介したサイトは、

Qiiitaの記事を聞き流せる、

【聞い太?】

という僕の作ったwebアプリです笑


技術ネタのインプットに持ってこいなので、

ぜひ使ってみてください★




以上、


  • RSpecで、Base64エンコードされた画像ファイルをテストする


でした。