मैं एक आवेदन के लिए परीक्षण विकसित कर रहा हूं। एक विधि है जिसमें पैरामीटर के रूप में params
सरणी है। मैंने मोक का उपयोग करके विधि स्थापित की है लेकिन जब मैं परीक्षण चलाता हूं, तो विधि का वापसी मूल्य शून्य है, जिसका अर्थ है कि इसे मजाक नहीं किया जा रहा है।पैराम्स ऐरे के साथ सेटअप विधि
यहाँ एक कोड नमूना है:
public interface ITicketManager {
string GetFirstTicketInQueueIfMatches(params string[] ticketsToMatch);
}
public class TicketManager : ITicketManager {
private Queue<string> ticketQueue = new Queue<string>();
public string GetFirstTicketInQueueIfMatches(params string[] ticketsToMatch) {
var firstQueuedTicket = ticketQueue.Peek();
var firstQueuedTicketMatchesAnyOfRequested = ticketsToMatch.Any(t => t == firstQueuedTicket);
if(firstQueuedTicketMatchesAnyOfRequested)
return firstQueuedTicket;
return null;
}
}
नकली कोड इस तरह दिखता है:
var mock = new Mock<ITicketManager>();
mock.Setup(m => m.GetFirstTicketInQueueIfMatches(It.IsAny<string>()))
.Returns(p => {
if(p.Contains("A"))
return "A";
return null;
});
क्यों यह कभी नहीं मज़ाक उड़ाया विधि हिट?
@DiegoAC से मिलान किया गया है: ठीक है तुम मिल गया है यह * सशर्त * लौटने 'वैसे भी null'। क्या आपने इसे "फू" वापस करने की कोशिश की है, यदि 'p' में '' '' नहीं है? इस तरह आप इसे कम से कम देख रहे होंगे ... –
उत्कृष्ट जवाब जॉन। धन्यवाद। दरअसल मैं केवल एक ही स्ट्रिंग प्राप्त कर रहा था। संकलक के बारे में स्पष्टीकरण बहुत उपयोगी था। –