Могу ли я переопределить зависимость в функции во время модульного тестирования в xUnit c #, как я переопределить зависимости в прокси-узле js? - PullRequest
0 голосов
/ 09 апреля 2019

в прокси-сервере, я могу переопределить жестко закодированные объекты в моих модульных тестах, таких как объекты Logger, следующим образом

  let LoggerMock = { Logger: function() {},
  log: function() {},
  logInfo:function(message) {},
  logError:function(error) { console.log(error)}
};

LoggerMock.Logger.prototype = {
  constructor : LoggerMock.Logger,
  log: function () { },
  logInfo:function(message) {},
  logError:function(error) { console.log(error)}
  };

затем в модульном тесте:

describe('Unit Test for Authorization processResponseMessage', () => {

let ctrl = common.proxyquire('../../TransactionProcessing/transaction/pgw03', {
      '../../local_modules/logger': common.LoggerMock,
'@noCallThru': true});



  it('should test Authorization pgw transaction response', () => {
    let responseMessage:any = {};
    responseMessage.RESPONSE_CODE = "000";
    let objpurchase = new ctrl['pgw03']();
    objpurchase.processResponseMessage(responseMessage , message);
    common.expect(message.RESPONSE_CODE).to.not.be.undefined;
    common.expect(message.RESPONSE_CODE).to.equal("000");
});
}

здесь processResponseMessage использует объекты класса Logger, который смоделирован с помощью proxyquire.

проблема в том, что я не нашел ничего подобного в xUnit / Moq framework. Как смоделировать жестко закодированные объекты (например, объекты, к которым осуществляется доступ к данным и которые следует обойти в модульном тесте) с помощью функции, не реализующей какой-либо интерфейс?

...