का उपयोग कर रहा सामान्य रूप में परीक्षण इसलिए यहाँ परीक्षण करते हैं कैसे पता करूं कि अनुरोध पर स्थिति संपत्ति Moq का उपयोग कर स्थापित किया गया है मेरी noobish प्र है Moq करने के लिए नया हूँ और?चेक एक संपत्ति स्थापित किया गया था, तो - Moq
public class DudeManager
{
private readonly IDRepository _repo;
public DManager(IDRepository repo)
{
_repo = repo;
}
public void Create(Request r)
{
r.Status = Status.Submitted;
_repo.AddRequest(r);
}
}
क्या निम्न से बेहतर दृष्टिकोण है? शायद VerifySet का उपयोग कर?
[TestMethod]
public void AddingNewRequestSetsStatusToSubmitted()
{
//Arrange
var mock = new Mock<IDRepository>();
var mockRequest = new Mock<Request>();
var dManager = new DManager(mock.Object);
//Act
dManager.Create(mockRequest.Object);
//Assert
Assert.AreEqual(Status.Submitted, mockRequest.Object.Status);
}
संपादित करें:
//Arrange
var request = new Request();
var mock = new Mock<IDRepository>();
var dManager = new DManager(mock.Object);
mock.Setup(x => x.AddRequest(It.IsAny<Request>()));
//Act
dManager.QueueNewRequest(request);
//Assert
Assert.AreEqual(RequestStatus.Submitted, request.Status);
यह दृष्टिकोण मेरे लिए सही लगता है: यह दृष्टिकोण मैं सभी उपयोगी सुझाव के बाद का उपयोग कर समाप्त हो गया है। क्या कोई अन्यथा सोचता है?
मेरा मानना है कि VerifySet सबसे अच्छा फिट है। – neontapir
क्या आप मुझे इसका उपयोग करने के तरीके पर एक उदाहरण दिखा सकते हैं? मैंने VerifySet का उपयोग करने की कोशिश की लेकिन यह मुझ पर उड़ा। –
मुझे विश्वास नहीं है VerifySet कुछ भी करता है, मैं कभी भी इसके साथ परीक्षण में असफल रहा हूं, हमेशा गुजरता हूं। मैं डीबगर से गुजरता हूं और देखता हूं कि मेरा मॉक कॉलबस सच है, सवाल में संपत्ति शून्य है, कोई चालान नहीं है। एक नमस्ते "हैलो दुनिया" के साथ VerifySet और बात जाती है ... पास। मैं इकाई परीक्षण ढांचे के साथ जाऊंगा और इसे बराबर मानता हूं। –