मेरे पास मेरे ऐप और मोंगो डेटाबेस के बीच एक सेवा परत है।मैं मोंगोडीबी सेवा परत का परीक्षण करने के लिए moq का उपयोग कैसे करूं?
मैं moq का उपयोग कर एक यूनिट परीक्षण बनाने की कोशिश कर रहा हूं, मैं moq के लिए काफी नया हूं इसलिए मैंने जो सोचा था, उसके साथ मैंने शुरू किया था।
परीक्षण करने के लिए कोड:
public List<BsonDocument> GetAllSettings()
{
var collection = MongoDatabase.GetCollection<BsonDocument>("Settings");
var query = from e in collection.AsQueryable()
select e;
var settings = query.ToList();
return settings;
}
कहाँ:
[Test()]
public void GetAllSettingsTest()
{
//Arrange
BsonDocument doc01 = new BsonDocument();
BsonDocument doc02 = new BsonDocument();
var mongoDatabase = new Mock<MongoDatabase>();
var collection = new Mock<MongoCollection<BsonDocument>>();
mongoDatabase.Setup(f => f.GetCollection(MongoCollection.Settings)).Returns(collection.Object);
collection.Object.Insert(doc01);
collection.Object.Insert(doc02);
ILogger logger = new Logger();
DatabaseClient.DatabaseClient target = new DatabaseClient.DatabaseClient(logger);
target.MongoDatabase = mongoDatabase.Object;
MongoCursor<BsonDocument> cursor = collection.Object.FindAllAs<BsonDocument>();
List<BsonDocument> expected = cursor.ToList();
List<BsonDocument> actual;
//Act
actual = target.GetAllSettings();
//Assert
Assert.AreEqual(expected, actual);
}
मैं: सेटिंग एक संग्रह है MongoDatabase एक MongoDBDriver.MongoDatabase
मैं अपने परीक्षण के रूप में इस की कोशिश की है है मुझे "पैरामीटर रहित कन्स्ट्रक्टर नहीं मिला" की त्रुटि मिल रही है:
mongoDatabase.Setup (f => f.GetCollection (MongoCollections.Settings))। रिटर्न (संग्रह। ऑब्जेक्ट);
त्रुटि MongoCollection ऑब्जेक्ट को संदर्भित करती है। मुझे नहीं लगता था कि यह एक कन्स्ट्रक्टर था।
मेरे परीक्षण को चलाने के लिए मैं क्या कर सकता हूं?
डोनॉट मॉक, 'var संग्रह = नया मॉक <मोंगोकोलेक्शन>();' और –
आज़माएं, मुझे खेद है, मैं समझ नहीं पा रहा हूं कि आप क्या सुझाव दे रहे हैं। – Richard210363