#c# #xunit #masstransit #nsubstitute
Вопрос:
Я пытаюсь издеваться над методом GetRetryAttempt() Masstransit, чтобы вернуть некоторые значения с помощью NSubstitute, но, похоже, это не работает. Не получаю никаких ошибок, но GetRetryAttempt() всегда возвращает 0 вместо 2.
Тест
var context = Substitute.For<ConsumeContext<FakeCommand>>();
var consumeRetryContext = Substitute.For<ConsumeRetryContext>();
consumeRetryContext.RetryAttempt.Returns(2);
context.TryGetPayload(out consumeRetryContext).Returns(true);
context.GetRetryAttempt().Returns(consumeRetryContext.RetryAttempt);
Код приложения
public async Task Consume(ConsumeContext<T> context)
{
......
var retryAttempt = context.GetRetryAttempt();
}
Комментарии:
1. Не издевайтесь, используйте
InMemoryTestHarness
изTesting
пространства имен.2. Спасибо @ChrisPatterson. Я имею в виду это masstransit-project.com/usage/testing.html#test-setup . Можете ли вы уточнить, как я могу указать свой код приложения, что повторная попытка (GetRetryAttempt() должна возвращать x) — это номер x из тестового жгута?