ich meine Handhabung eines MongoWriteException testen wollen den Mongo-Treiber, hier ist ein Beispiel Methode:Unit-Tests MongoWriteExceptions
private void Update()
{
try
{
var find = Builders<Filter>.Filter.Eq(e => e.Id, "someId");
var update = Builders<Filter>.Update.Set(e => e.SomeValue, "AValue");
_documentStore.MongoCollection<Filter>().UpdateOne(find, update, new UpdateOptions { IsUpsert = true }, CancellationToken.None);
}
catch (MongoWriteException mongoWriteException)
{
if (mongoWriteException.WriteError.Category != ServerErrorCategory.DuplicateKey)
{
throw;
}
}
}
Wer weiß, wie ich einen MongoWriteException verspotten? Ich habe versucht, es wie so zu konstruieren:
var mongoWriteException = new MongoWriteException(new ConnectionId(new ServerId(new ClusterId(1), new DnsEndPoint("d", 2)), 0), new WriteError(), // <- Protected constructor
Aber die Writeerror-Klasse verfügt über einen internen Konstruktor
Ich bin nicht so vertraut mit Mongodb. welcher Typ ist '_documentStore'. Ich denke, dass Sie den Zugang zum Treiber abstrahieren müssen, ist es nicht schon. – Nkosi
Document Store ist nur eine Fassade. Das eigentliche Problem ist, dass ich die auftretende Ausnahme nicht simulieren kann. –
Wo würde es normalerweise auftreten. vielleicht kannst du moq benutzen, um es zu werfen, wenn du einen der Mocks anrufst. – Nkosi