我是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
答案 0 :(得分:2)
通常,您要做的是使用Assert
类来比较预期值和实际值。实际值通常是方法的返回值。在您的情况下,我建议您测试import.loadResults();
和import.loadContributions();
的返回值,以确保它们返回您期望的值。
我看到你使用EF,这不是你需要进行单元测试的东西,已经由微软完成了。如果需要,可以使用集成测试,测试可以访问数据库并检查是否插入了正确的值。
很难提供更具体的建议,只需在Visual Studio中创建一个测试项目,稍微玩一下,然后尝试询问更具体的问题。您可以使用此presentation来了解单元测试的基础知识。