LoginSignup
0
0

More than 1 year has passed since last update.

goのtestfixtureで配列を登録する方法

Last updated at Posted at 2023-04-24

はじめに

業務でGOのテストする際にgo-testfixturesライブラリに大変お世話になっています。このライブラリを使うと、yamlファイルからテスト用DBのデータを簡単に作ることができます。

詳しくはREADME.mdを読んで欲しいのですが、yamlファイルに下記のように書くだけ、DBのデータを追加することが可能です。

# comments.yml
- id: 1
  post_id: 1
  content: A comment...
  author_name: John Doe
  author_email: john@doe.com
  created_at: 2020-12-31 23:59:59
  updated_at: 2020-12-31 23:59:59

- id: 2
  post_id: 2
  content: Another comment...
  author_name: John Doe
  author_email: john@doe.com
  created_at: 2020-12-31 23:59:59
  updated_at: 2020-12-31 23:59:59

で、今回、DBのスキーマがarray型の時はどうやって書くねん??となったので、備忘録として残しておきます。

いきなり結論

  • RAWを使う。
  • SQLで{}で囲むと配列のリテラル表現となる。下記のようにRAW=とするのことで、rawのSQL文として配列をDBに直接登録できる

yaml

- id: 1
  name_array: RAW='{tanaka, suzuki}'
- id: 2
  name_array: RAW='{takahashi, chakuradokuro}'

余談

  • RAWは便利でこれ以外にもめっちゃ使ってます。RAW=pgp_sym_encrypt()やらRAW=NOW()やら、何かと使う機会があるのでぜひ覚えてみてください。
0
0
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
0