Доступ к файлу от COM-объекта Excel перестал работать, когда выполнено от Сервиса NT на Vista

Прежде всего, вы обычно не тестируете зависимости / методы зависимости. Вы только проверяете свой код.

Во-вторых, я думаю, вы говорите, что хотите проверить, вызывается redis.get() или нет. Это означает, что вам придется spy на это.

jest.spyOn() это то, что вы должны проверить.

Ваш тест должен выглядеть примерно так:

import * as redis from 'redis';

describe('my redis wrapper', () => {
  it('Should call get when my wrapper\'s getFunc is called', () => {
    let myRedisSpy = jest.spyOn(redis.prototype, 'get');
    // call your function here
    expect(myRedisSpy).toHaveBeenCalledOnce();
  });
});

Или что-то похожее, я не знаю, будет ли этот код работать как есть. Но вы всегда можете попробовать.

6
задан Dirk Vollmar 2 December 2016 в 11:50
поделиться

2 ответа

просто некоторые дальнейшие вопросы:

  • Какую версию Excel Вы используете?
  • Вы попытались выполнить сервис с поднятыми полномочиями?
1
ответ дан 17 December 2019 в 22:15
поделиться

Я "отчасти" решил эту проблему. Если Вы используете "dcomcnfg" для изменения учетной записи для запуска приложения Excel к учетной записи пользователя, или "интерактивный пользователь" Excel, запущенный от сервиса, запускает в той учетной записи, и это теперь может получить доступ к файловой системе.

Проблема, это - глобальная установка. Если Вы используете: * "этот Пользователь": затем Excel ALWAYS открывается тем пользователем И всегда открывается без UI на сессии 0, даже для интерактивного использования Excel. IE его всегда невидимый. * "Интерактивный Пользователь": Now, который Excel всегда запускает в интерактивном пользователе accout, который я не думаю, будет работать на сервис, который запустится на начальной загрузке без интерактивного пользователя.

Должна быть некоторая настройка безопасности на этом. Я надеюсь, что у других есть другие идеи.

0
ответ дан 17 December 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: