Я не могу проверить надежный сервис/актер, просто называя его конструктором, а затем проверять его методы. var testService = new SomeService();
генерирует исключение NullReferenceException. Итак, что я могу сделать с развернутым сервисом.
Я понимаю, что развернутые SF Reliable Services/Actors не являются стандартными .NET-классами, а модульное тестирование развернутой S/A может быть странной идеей.
В любом случае, я пытаюсь попробовать.
Например. Я только что развернул службу, а в тесте я создал объект Proxy и добавил элемент во входную очередь службы. Затем мне нужно утверждать, что количество входных очередей = 1. И оно работает, если я только что развернул службу, и никакие другие Клиенты/Сервисы/Актеры не использовали эту входную очередь. Но в следующий раз этот тест не удастся решить эту проблему. Мне нужно, чтобы Служба перестала работать с другими потребителями, опустила очередь и проверила ее. Для этого я могу создать некоторое свойство TestMode и некоторые методы, такие как PropareoForTests/TestingCompleted и вызвать их из тестового клиента до и после тестирования.
Это плохая идея, чтобы сделать это так. Возможно, есть ли какие-то рекомендации для модульного тестирования SF? Спасибо.
UPDATE:
При исследовании Пример веб-справочника веб-сайта службы технической поддержки Я нашел эту строку TODO:
/// TODO: Temporary property-injection for an IServiceProxyWrapper until constructor injection is available.
Означает ли это, что SF Services улучшит поддержку DI? Как насчет актеров?