मैं इस समय अपने आप को खा रहा हूं। यह एंटिटी फ्रेमवर्क की तरह परीक्षण योग्य नहीं है। मैंने बहुत सारे पदों और धागे पढ़े हैं जहां वे काम की इकाई या moq या repo पैटर्न का उपयोग करते हैं।परीक्षण: संदर्भ बनाने से इकाई फ्रेमवर्क
मैं एक चरण में हूं कि मैं अपने आवेदन के अपने आर्किटेक्चर का बहुत कुछ नहीं बदल सकता। एप्लिकेशन इस पल में पूरी तरह से काम करता है लेकिन यह सुनिश्चित करने के लिए कि मुझे उच्च कोड कवरेज होना चाहिए, इसलिए इसका परीक्षण करना है।
परीक्षण के लिए, मैं 'नकली संदर्भ' विधि का उपयोग कर रहा हूं जहां मैं नकली एक का उपयोग मॉकिंग के लिए कर सकता हूं और डेटाबेस के कनेक्शन के लिए असली एक का उपयोग कर सकता हूं।
मैंने इसे एक उदाहरण के रूप में उपयोग किया। http://romiller.com/2010/09/07/ef-ctp4-tips-tricks-testing-with-fake-dbcontext/
वहां, आप देख सकते हैं कि संदर्भ विभाजित है और एक इंटरफ़ेस के रूप में उपयोग किया जाता है। पसंद:
public interface IEmployeeContext
{
IDbSet Department Departments { get; }
IDbSet Employee Employees { get; }
int SaveChanges();
}
public class EmployeeContext : DbContext, IEmployeeContext
{
public IDbSet Department Departments { get; set; }
public IDbSet Employee Employees { get; set; }
}
public class FakeEmployeeContext : IEmployeeContext
{
public FakeEmployeeContext()
{
this.Departments = new FakeDepartmentSet();
this.Employees = new FakeEmployeeSet();
}
public IDbSet Department Departments { get; private set; }
public IDbSet Employee Employees { get; private set; }
public int SaveChanges()
{
return 0;
}
}
}
तो टेसिंग और सबकुछ काम करता है। EntityState.Modified
क्योंकि यह एक अंतरफलक मुझे लगता है कि जोड़ने के लिए इंटरफ़ेस संदर्भ में की जरूरत का उपयोग करता है: केवल एक चीज मैं करना नहीं कर पा रहे, उस में .State के साथ एक नियंत्रक का परीक्षण मैं जहां जाँच यह बदल गया है कि क्या की तरह है । और एक नया बनाएँ। या क्या मैं कुछ न कुछ भूल रहा हूं ? यह संभवतः उस संदर्भ में पूरी विधि बनाने का इरादा नहीं है .. मैं इसे
तो मूल रूप से मैं दृश्य स्टूडियो के असली नकली डेटाबेस के खिलाफ परीक्षण करूंगा? – Ibsonic
एकीकरण परीक्षण यह है! धन्यवाद @ लिएल ने मुझे बहुत मदद की। मैंने अपने संदर्भों को वापस कर दिया .. इसकी सुंदरता नकली संदर्भ बनाने के बजाय पूरी तरह से पृथक है जो केवल अनियंत्रित कोड है। – Ibsonic