我正在使用MSTest在我们的应用程序中改进单元测试。我们的一些测试将使用通常来自我们数据库的模拟对象(类)列表。我想将此列表保存在测试项目中,然后根据需要读取需要它的每个测试的列表。这样做有最好的做法吗?顺便说一句,这些列表可能包含数百或数千个项目。
答案 0 :(得分:0)
对于这种情况,我会使用数据驱动的测试。
查看msdn网站http://msdn.microsoft.com/en-us/library/ms182527.aspx
上的示例答案 1 :(得分:0)
至少有两种解决方案
使用库Json.Net,您可以将包含JSON的文本文件反序列化为对象的
var hierarchy = JsonConvert.DeserializeObject<Root>(testJson)
请参阅完整示例here
优势
缺点
如果您在测试期间涉及ORM,您可以从根据数据库XSD创建的XML文件load data using NdbUnit到SQLite
SQLiteConnection connection = boundSession.GetConnection();
using (var cmd = new SQLiteCommand("PRAGMA foreign_keys = OFF", connection))
{
cmd.ExecuteNonQuery();
}
var sqlLiteUnitTest = new SqlLiteDbUnitTest(connection);
sqlLiteUnitTest.ReadXmlSchema(xsdFile);
sqlLiteUnitTest.ReadXml(xmlDataFile);
sqlLiteUnitTest.PerformDbOperation(DbOperationFlag.CleanInsertIdentity);
using (var cmd = new SQLiteCommand("PRAGMA foreign_keys = ON", (SQLiteConnection)connection))
{
cmd.ExecuteNonQuery();
}
请参阅完整示例here
优势
缺点