Я хочу, чтобы проверить свою обработку в MongoWriteException с помощью драйвера Монго, вот выборочный метод:Модульное тестирование 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;
}
}
}
Кто-нибудь знает, как я могу издеваться в MongoWriteException? Я пытался построить его так:
var mongoWriteException = new MongoWriteException(new ConnectionId(new ServerId(new ClusterId(1), new DnsEndPoint("d", 2)), 0), new WriteError(), // <- Protected constructor
Но класс WriteError имеет внутренний конструктор
Я не так хорошо знаком с монгодбом. какой тип '_documentStore'. Я думаю, вам, возможно, потребуется отвлечь вас от доступа к драйверу, это еще не все. – Nkosi
Магазин документов - это просто фасад. Реальная проблема заключается в том, что я не могу имитировать происходящее исключение. –
Где это обычно происходит. может быть, вы можете использовать moq, чтобы бросить его, когда вы называете одного из насмешек. – Nkosi