Немного предыстории: я хочу написать unittest для функции ниже. Однако всякий раз, когда я импортирую функцию в unittest и пытаюсь запустить ее, я получаю ReferenceError: $ is not defined
. $
исходит из библиотеки транспортировщиков, поэтому я искал способ заглушить его, но я не смог найти способ сделать это. До сих пор я пытался использовать библиотеки sinon и mockery.
У меня вопрос, как я могу издеваться $
, чтобы я мог написать юнит-тест для этого?
const { $ } = require('protractor');
/**
* Function for resolving object types.
*
*
* resolveType($('.save-button'));
* ```
*
* @param {*} locator
* @return {Object} returns object with the element, a selector, and
* it's description for element
*/
module.exports = function verifyType(locator) {
return {
element: $(mySelector),
selector: mySelector,
description: locator.description,
};
};
Обновление - вот моя текущая попытка юниттеста для этого. Сбой с ReferenceError: $ is not defined
:
const resolveType = require('../../path/toResolveType').resolveType;
const mochaccino = require('mochaccino');
const { expect } = mochaccino;
const sinon = require('sinon');
const { $ } = require('protractor');
const locator_a = { description: '"embed ID" text box', selector: '#embed-id' };
describe('commands.resolveType', function() {
beforeEach(function () {
sinon.stub($).returns('test');
});
afterEach(function () {
$.restore();
});
it('Standard locator with CSS selector', function() {
const answer = resolveType(locator_a);
// Placeholder till I can get answer to evaluate.
expect('a').toEqual('a');
});
});