0

MVC4アプリケーションの一連の単体テストを作成しています。すべてのテストの前に削除され、再入力されるテストデータベースを作成したいと思います。そのためには、次のようなことを行うシード関数が必要です。

var project = new Project() {Name = "Project One", Description = "Watermelons make you high!"}
_context.Projects.Add(project);

var projectTwo = new Project() {Name = "Project Two", Description = "Insert your joke here"}
_context.Projects.Add(project);

など、テストするすべてのオブジェクトについて。多いほど良い。

そして、私は怠け者です。私はこれらすべてをC#で自分で書きたくありません。しかし、私が開発したWebアプリを使用して、大量のテストデータをすばやく作成することができます。

ここで問題となるのは、上記の例のように、データベース(SQL Server 2012)のデータをC#ステートメントに変換する方法です。

データベースをSQLステートメントとしてエクスポートし、スクリプトごとに毎回実行できます。ただし、モデルが変更されるたびに(新しいフィールドなど)、SQLを再作成する必要があります。また、オブジェクトがDBに配置されているため、オブジェクトにアクセスできると便利な場合もありますが、SQLスクリプトではそれができません。

もう1つのオプションは、いくつかの正規表現を作成してsql-scriptをオブジェクトに変換することです。それがどれだけの仕事かわからない。私はおそらく最後にこれを行うことになります。

では、データベース内のデータをC#オブジェクトに変換できるツールはありますか?

4

1 に答える 1

1

たとえば100回実行するforループを作成してみませんか。そして、そこに新しいプロジェクトを作成し、次のように_contextに追加します。

for(int i = 0; i < 100; i++)
{
    _context.Projects.Add(new Project() {Name = string.format("Name{0}", i), Description = string.format("Description{0}", i) });
}

そして、そのチャットで提案したように、名前と説明の代わりにランダムな単語の辞書を取得して、毎回ランダムなデータを取得します。

于 2012-08-27T02:46:30.923 に答える