質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

Q&A

3回答

2999閲覧

データベースのテスト

liaq

総合スコア13

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

0グッド

0クリップ

投稿2015/12/29 17:26

データベースに関する処理のテストではなく、書き込まれたデータベースそのものに対してデータベースにきちんと書き込めてるかどうかのテストがしたいです。

データベースのテストについて調べてみてもモデルに関する記事ばかりで僕がしたいようなテストに関する記事がありません。
JSON SCHEMAやrspecのような感じでデータベースのデータを確認したいのですが、Active Recordなりでデータを取得してから普通にrspecとかで確認するのが普通なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

たとえば、
create した後にDB から再取得してその内容をチェックしたい
ということでしたら、次のように書けば良いとおもいます。
(そういうテストを書く必要があるかは他の回答にあるように再検討の余地はありますが)

ruby

1 it 'create team' do 2 @team = Team.create!(name: 'Project-X') 3 # @team.reload 4 @team = Team.find(@team.id) 5 expect(@team.name).to eq 'Project-X' 6 expect(@team.created_at).to be_truthy 7 end

Team.find(@team.id) として、DB から find してますが、@team.reload でも同じ動作になります。

投稿2015/12/30 00:43

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

SQLiteそのものの信頼性を確かめるテストをしたい、ということでいいでしょうか。
そういうことをする方法についての記事が見当たらないのは、通常DBのようなミドルウェアの信頼性は十分に高いという前提のもとでソフトウェアは構築されるものだから、というのがあるかと思います。

では前提とできるほどの信頼性の高さはどう保証されているのか? もちろん採用実績が膨大にある(だから問題があればすでにあぶり出されているはずだと言える)こともありますし、それ自身テストされているというのもあります。

どのようなテストがされているかは SQLite プロジェクト自身が記事化しています。
How SQLite Is Tested
英語ですが。

実際のテストコードは こんな感じ ですね。TCLというスクリプト言語で記述されています。

さて、そういうのがある上でどういう目的でどんな点を独自にテストしたいのか、という話になってくるわけですが、そこを整理してみませんか。

投稿2015/12/29 22:37

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

DBにデータが書き込まれたかではなく、正しい内容が書き込まれているかチェックする検証方法を考えた方が現実的に思えます。

投稿2015/12/30 12:06

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問