c#单元测试视觉工作室2010

时间:2012-07-26 10:41:27

标签: c# unit-testing

我是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

1 个答案:

答案 0 :(得分:2)

通常,您要做的是使用Assert类来比较预期值和实际值。实际值通常是方法的返回值。在您的情况下,我建议您测试import.loadResults();import.loadContributions();的返回值,以确保它们返回您期望的值。

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

很难提供更具体的建议,只需在Visual Studio中创建一个测试项目,稍微玩一下,然后尝试询问更具体的问题。您可以使用此presentation来了解单元测试的基础知识。