1

私はC#とプログラミング全般に不慣れです。いくつかの単体テストを書く必要があります。このクラスのためにいくつか書きたい:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using teamcanada.Models;
using System.Configuration;
using teamcanada.ingestion;

/* This class writes the parsed CSV data into the database */

namespace teamcanada.dal
{
    public class csvParseDAL
    {
        protected torontoDB db = new torontoDB();

        /* if the database is empty, then do not continue with the CSV parsing */

        public csvParseDAL()
        {
            if ((db.ElectionResults.ToList().Count() == 0) && (db.ElectionContributions.ToList().Count() == 0))
            {
                insertcsv();
            }
        }

        /* Start CSV parsing  */

        public void insertcsv()
        {
            List<Results> results = null;
            List<Contributions> contributions = null;

            LoadCSV import = new LoadCSV();

            results = import.loadResults();

            foreach (Results r in results)
            {
                db.ElectionResults.Add(r);
            }

            contributions = import.loadContributions();

            foreach (Contributions r in contributions)
            {

                db.ElectionContributions.Add(r);
            }
            db.SaveChanges();
        }
    }
}

どんな助けでも大歓迎です。

D

4

1 に答える 1

2

一般に、Assert期待値と実際の値を比較するためにクラスを使用します。通常、実際の値はメソッドの戻り値です。あなたの場合、戻り値をテストして、期待どおりに返されることを確認することをお勧めimport.loadResults();import.loadContributions();ます。

Microsoft によって既に行われている、単体テストに必要なものではない EF を使用しているようです。必要に応じて、テストがデータベースにアクセスできる統合テストを使用して、適切な値が挿入されているかどうかを確認できます。

より具体的なアドバイスをするのは難しいです。Visual Studio でテスト プロジェクトを作成し、少し遊んでから、より具体的な質問をしてみてください。このプレゼンテーションを使用して、単体テストの基本を理解できます。

于 2012-07-26T10:50:31.610 に答える