我正在使用asp.net mvc,實體框架6和visual studio 2013創建一個新項目。我想直接從一開始創建測試,否則它們永遠不會創建,但我不確定關於何時和測試什麼。第一次創建單元測試
在我的解決方案我有以下項目
數據 - 我的EF上下文和配置文件來映射實體數據庫 實體 - 我的POCO對象 服務 - 包括我的業務邏輯爲每個實體。加載並保存數據到我的上下文中 Web - WebApi和MVC網站
現在我需要爲Data項目添加一個測試項目嗎?我當中的一部分人說「當然是」,因爲我想確保數據被保存在正確的位置,但是我的另一部分認爲這可能會在服務測試項目中重複出現?
這是一個基本的測試,我把它放在一起,但這是一個很好的測試,還是沒有意義?
[TestClass]
public class CompanyTest
{
private MyContext _context;
[TestInitialize]
public void Initialize()
{
// set our context
_context = new MyContext();
// add test data
var companies = GetTestData();
// save data
companies.ForEach(s => _context.Companies.Add(s));
_context.SaveChanges();
}
[TestCleanup]
public void Cleanup()
{
var companies = _context.Companies.ToList();
// remove all companies
companies.ForEach(s => _context.Companies.Remove(s));
_context.SaveChanges();
}
[TestMethod]
public void AddCompanies_ShouldReturnTwo()
{
// get data
var companies = _context.Set<Company>().ToList();
// check values
Assert.AreEqual(2, companies.Count);
}
[TestMethod]
public void GetCompany_CheckDataInEachField()
{
var companies = _context.Set<Company>().ToList();
Company company;
// first company
company = companies[0];
Assert.AreEqual("ABC Construction", company.Name);
Assert.AreEqual("ABC001", company.Reference);
Assert.AreEqual("10-15 TemplateStreet", company.Street);
Assert.AreEqual("Brierley Hill", company.Town);
Assert.AreEqual("Somerset", company.County);
Assert.AreEqual("England", company.Country);
Assert.AreEqual("TY1 1AB", company.Postcode);
// second company
company = companies[1];
Assert.AreEqual("Baseline Design", company.Name);
Assert.AreEqual("BAD0023", company.Reference);
Assert.AreEqual("23-25 Hedlyn Road", company.Street);
Assert.AreEqual("Oxford", company.Town);
Assert.AreEqual("Oxford", company.County);
Assert.AreEqual("England", company.Country);
Assert.AreEqual("OX1 4FG", company.Postcode);
}
private List<Company> GetTestData()
{
// companies
return new List<Company>
{
new Company{ Name="ABC Construction", Reference="ABC001", Street="10-15 TemplateStreet", Town="Brierley Hill", County="Somerset", Country="England", Postcode="TY1 1AB",DateAdded=DateTime.Now},
new Company{ Name="Baseline Design", Reference="BAD0023", Street="23-25 Hedlyn Road", Town="Oxford", County="Oxford", Country="England", Postcode="OX1 4FG",DateAdded=DateTime.Now}
};
}
}
所以我只需要測試項目的服務和Web?
如果有人知道什麼時候以及如何設置測試的好參考資料,請讓我知道。
我很感激也許有點貴,但你有點明白我的意思。對於測試來說新的東西不過不想錯過單元測試的一個重要部分,或者完全錯誤地進行測試。感謝您的參考 – Gillardo 2014-10-07 15:06:23