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();确保它们返回您期望的返回值。

我看到您使用 EF,这不是您需要进行单元测试的东西,微软已经完成了。如果需要,您可以使用集成测试,其中测试可以访问数据库并检查是否插入了正确的值。

很难给出更具体的建议,只需在 Visual Studio 中创建一个测试项目,玩一圈,然后尝试提出更具体的问题。您可以使用此演示文稿来了解单元测试的基础知识。

于 2012-07-26T10:50:31.610 回答