【问题标题】:cannot get rid of date unit testing - javascript无法摆脱日期单元测试 - javascript
【发布时间】:2019-05-29 11:15:53
【问题描述】:

我是单元测试新手,我正在为返回日期的函数实施单元测试。

const getLastHour = () => {
const date = new Date().getTime() - 3600000;
return date;
};

我做了这样的东西,但它不起作用

describe('getLastHour', () => {
        const getLastHour = mobileArticleService.__get__('getLastHour');
        const getTime = sinon.stub(2019052906);
        const Date = sinon.stub({ getTime });

        before(() => {
            mobileArticleService.__set__({
                Date,
                getTime,
            });
        });

        it('should return date with hours ', () => {
            expect(Date).to.be.called;
            expect(getTime).to.be.called;
        });
    });

【问题讨论】:

  • “不起作用”以什么方式?会发生什么,您期望会发生什么?即使它应该通过,测试是否会失败,或者相反?它会抛出错误吗?

标签: mocha.js chai sinon


【解决方案1】:

您实际上并没有在当前实现中对Date 进行存根,也没有调用您的被测单元。如果您尝试对该功能进行单元测试,请存根依赖项。单元测试非常关注单个工作单元的输入和输出。

describe('My Test', function () {
  const dateStub;

  before('', function () {
    dateStub = sinon.stub(Date, 'getTime').returns(143434325325);
  });

  it('should return date with hours ', () => {
    const result = getLastHour();
    expect(dateStub).to.be.called;
  });
});

【讨论】:

    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多