Если вы используете IEnumerable
вместо этого, он будет работать (по крайней мере, в C # 4.0, я не пробовал предыдущие версии). Это просто бросок, конечно же, он все равно будет списком.
Вместо -
List<A> listOfA = new List<C>(); // compiler Error
В исходном коде вопроса , use -
IEnumerable<A> listOfA = new List<C>(); // compiler error - no more! :)
В вашем коде есть синтаксическая ошибка. Вы создаете объект modules
, а в модуле Object вы создаете объект без ключа, а function
в качестве значения.
В основном вы делаете: obj = { healthcheck: { func } };
Вам это нужно не будет obj = { healthcheck: func }
module.exports = function(serviceKey) {
const modules = {};
modules.healthcheck = function(){
console.log('I have a heartbeat!');
}
return modules;
};
Настройка модульного теста для этого сценария не будет идеальным тестом. Как насчет размещения функции setter в вашем сервисе?
let client = require('./myService');
client.setServiceKey('abc123');
// or
client.setServiceKey(process.env.SERVICE_KEY);
let myReturnValue = client.myDifferenctCalls();
Затем вы можете настроить хороший, tokenValid или tokenNotValid модульный тест, чтобы выполнить его.
Затем подумайте: 1. Ваш метод require возвращает значение, в вашем случае его возвращающие модули являются объектом в вашем myService.js. Вы также устанавливаете свойство 'healthcheck', которое вы определяете как объект . Итак, мы видим, что вы возвращаете: 'modules' как объект, а prop module.healthcheck как объект. Таким образом, ваш module.healthcheck как объект не является [[callable]] и, следовательно, не является функцией. Как минимум, пока вы должны переопределить module.healthcheck как выражение функции вместо объекта. Поэтому я дал ответ в письменном виде, но вам нужно его кодировать.