यहाँ बुलाया गया था है कि मैं क्या है:राइनो Mocks IgnoreArguments() और परीक्षण करता है, तो एक लैम्ब्डा सही ढंग से
public interface IDataCenterMsmqWriter
{
void UpdateData(Action<DataCenterWcfProxy> action);
}
प्रणाली परीक्षण के अंतर्गत:
public class WcfService : IWcfService
{
private readonly IDataCenterMsmqWriter _writer;
public WcfService(IDataCenterMsmqWriter writer)
{
_writer = writer;
}
#region IWcfService members
public void SendData(SomeData data)
{
_writer.UpdateData(d => d.SendVarData(data));
}
// other members of IWcfService elided
#endregion
}
मैं राइनो Mocks रूप _writer स्थापित करने के साथ किस प्रकार जाँच कर एक मॉक और परीक्षण करना चाहते हैं कि सही कार्य को अद्यतनडेटा विधि में बुलाया गया था।
मैं इस की कोशिश की है:
// _writer is setup as a mock
var data = new SomeData();
_wcfServiceSUT.SendData(data);
_writer.AssertWasCalled(d => d.UpdateData(x => x.SendVarData(data));
काम नहीं करता।
मैं जोड़ सकते हैं:
, पी => p.IgnoreArguments() AssertWasCalled अंदर UpdateData के बाद, लेकिन है कि मुझे यह सुनिश्चित करने के SendVarData डेटा चर के साथ बुलाया गया था नहीं देता है मैं क्या चाहते हैं,।
मैं इस देखा है:
How to assert that an action was called
लेकिन मेरी लड़ाई अपने उदाहरण में mockDialogService तरह मज़ाक उड़ाया नहीं है।
क्या यह जांचने का कोई तरीका है कि सही इनपुट पैरामीटर आदि के साथ कोई एक्शन या फनक ठीक से कहलाता है या नहीं?
'DataCenterWcfProxy.SendVarData()' एक वर्चुअल विधि है, या आप एक इंटरफ़ेस जगह में रख सकते हैं? – Jeroen
नहीं, यह इंटरफ़ेस पर केवल एक सार्वजनिक विधि है जो डब्ल्यूसीएफ पर क्रमबद्ध होगा। –
यह एक इंटरफ़ेस 'IDataCenterWcfProxy' जोड़ने का विकल्प है जो 'DataCenterWcfProxy' द्वारा कार्यान्वित किया जाता है और' IDataCenterMsmqWriter' की' अद्यतन' विधि द्वारा उपयोग किया जाता है? – Jeroen