मैं Moq और TDD के साथ नया हूं और मैं जो करने की कोशिश कर रहा हूं वह रिपोजिटरी इंटरफ़ेस पर विधि सेट अप करना है।Moq फ्रेमवर्क Func <T,T>
यहां पूरी कहानी है।
मैं
public class Tenant:EntityBase<Tenant>,IAggregateRoot
{
...
public string BusinessIdentificationNumber {get;set;}
...
}
अगला मैं इस इकाई इंटरफेस है, जिसके लिए भंडार है
तरहpublic interface IRepository<T>
{
...
T FindBy(Func<T,bool> func);
...
}
जहां समस्या है, मैं एक डोमेन सेवा का उपयोग एक डोमेन इकाई संपत्ति BusinessIdentificationNumber साथ किरायेदार बुलाया वर्ग है जिसमें किरायेदार बनाने के नियम हैं और
public class TenantCreationService:ITenantCreationService
{
public TenantCreationService(IRepository<Tenant> tenantRepository){...}
public void CreateTenant(Tenant tenant)
{
//from here there is call to IRepository<Tenant>.FindBy(funcMethod);
}
}
और इकाई परीक्षण में मैं कहाँ TenantCreationService मैं भंडार निर्माता के लिए पारित नकली परीक्षण कर रहा हूँ, लेकिन मैं सुविधा का परीक्षण करना चाहते हैं:
- जब BusinessIdentificationNumber साथ किरायेदार पहले से ही भंडारण या सत्र में मौजूद है यह किया जाना चाहिये।
तो मैं जैसे
repositoryMock.Setup(x=>x.FindBy(It.Is<Tenant>(t=>t.BusinessIdentificationNumber
== _tenantInTest.BusinessIdentificationNumber))).Returns(_tenantInTest)
यह करने के लिए कोशिश कर रहा था, लेकिन यह संकलन नहीं है। आप जानते हैं कि मैं क्या करना चाहता हूं?
संपादित करें: "। जब BusinessIdentificationNumber साथ किरायेदार पहले से ही भंडारण या सत्र में मौजूद है यह वापस आ जाना चाहिए" जब मैं नीचे
repositoryMock.Setup(e => e.FindBy(t => t.BusinessNumber == _validTenant.BusinessNumber)).Returns(
_validTenant);
मैं अपवाद
Unsupported expression: t => (t.BusinessNumber == value(DP.IPagac.UnitTests.DP.IPagac.Module.TenantManagement.TenantDomainServiceTests)._validTenant.BusinessNumber)
आप अपने प्रश्न में संकलन त्रुटि शामिल कर सकते हैं? –