की सुविधा के लिए मेरे पास करने के लिए इकाई परीक्षण बुला container.Resolve < टी >() उनकी निर्भरता के लिए पर भरोसा नहीं कर कोशिश कर रहा हूँ।एक नेट यूनिट एक parameterless निर्माता के बिना टेस्ट, निर्भरता इंजेक्शन
मैं वर्तमान में AutoFac 2.2.4 का उपयोग कर रहा है, और करने की कोशिश की xUnit.NET और NUnit, लेकिन दोनों इस मुद्दे है:
कोई parameterless निर्माता इस वस्तु
के लिए परिभाषित
मैं इस मुद्दे को कैसे प्राप्त करूं? क्या यह एक विशेष इकाई परीक्षण ढांचा है जो इसका समर्थन करेगा, या सिर्फ फ्रेमवर्क कॉन्फ़िगर कैसे किया गया है?
क्या मुझे यह नहीं करना चाहिए? या क्या मैं कन्स्ट्रक्टर के साथ काम करने के लिए टेस्ट क्लास स्थापित कर सकता हूं जिसमें इसकी केवल निर्भरता है?
यहाँ कोड के कुछ है:
public class ProductTests : BaseTest
{
readonly private IProductRepository _repo;
public ProductTests(IProductRepository r)
{
_repo = r;
}
//working unit tests here with default constructor
}
मैं आधार वर्ग निर्माता में गलत तरीके से कंटेनर आरंभ करने के लिए चुना?
public abstract class BaseTest
{
protected BaseTest()
{
var builder = new ContainerBuilder();
builder.RegisterType<ProductRepository>().As<IProductRepository>();
builder.Build();
}
}
टेस्ट क्लास को कन्स्ट्रक्टर क्यों होना चाहिए? सेटअप विधि में "इंजेक्शन" रखें। –