【问题标题】:Object #<Object> has no method 'type'Object #<Object> 没有方法 'type'
【发布时间】:2013-10-18 15:42:12
【问题描述】:

我的测试代码是

var strategy = require('../lib');
var should = require("should");
describe('passport-twitter', function() {

  it('should export Strategy constructor directly from package', function() {
    console.log('strategy is',strategy);
    strategy.should.have.type('function');
  });

  it('should export Strategy constructor', function() {
    strategy.Strategy.should.have.type('function');
  });

});

当我运行这个测试时,它给了我错误

1) passport-twitter should export Strategy constructor directly from package:
     TypeError: Object #<Object> has no method 'type'
      at Context.<anonymous> (/home/ritesh/projects/passport-topcoder/test/module.test.js:7:26)
      at Test.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:211:32)
      at Runner.runTest (/usr/local/lib/node_modules/mocha/lib/runner.js:358:10)
      at /usr/local/lib/node_modules/mocha/lib/runner.js:404:12
      at next (/usr/local/lib/node_modules/mocha/lib/runner.js:284:14)
      at /usr/local/lib/node_modules/mocha/lib/runner.js:293:7
      at next (/usr/local/lib/node_modules/mocha/lib/runner.js:237:23)
      at Object._onImmediate (/usr/local/lib/node_modules/mocha/lib/runner.js:261:5)
      at processImmediate [as _immediateCallback] (timers.js:330:15)

  2) passport-twitter should export Strategy constructor:
     TypeError: Object #<Object> has no method 'type'
      at Context.<anonymous> (/home/ritesh/projects/passport-topcoder/test/module.test.js:11:35)
      at Test.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:211:32)
      at Runner.runTest (/usr/local/lib/node_modules/mocha/lib/runner.js:358:10)
      at /usr/local/lib/node_modules/mocha/lib/runner.js:404:12
      at next (/usr/local/lib/node_modules/mocha/lib/runner.js:284:14)
      at /usr/local/lib/node_modules/mocha/lib/runner.js:293:7
      at next (/usr/local/lib/node_modules/mocha/lib/runner.js:237:23)
      at Object._onImmediate (/usr/local/lib/node_modules/mocha/lib/runner.js:261:5)
      at processImmediate [as _immediateCallback] (timers.js:330:15)

但是在文档中指定了类型方法。如何摆脱这个错误。请帮助一下。

当我尝试运行时而不是这个

var strategy = require('..');
var should = require("should");
describe('passport-twitter', function() {

  it('should export', function() {
    console.log('strategy is',strategy);
   'xxxx'.should.have.type('function');
  });

});

我仍然收到错误

 1) passport-twitter should export:
     TypeError: Object #<Object> has no method 'type'
      at Context.<anonymous> (/home/ritesh/projects/passport-topcoder/test/module.test.js:7:23)
      at Test.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:211:32)
      at Runner.runTest (/usr/local/lib/node_modules/mocha/lib/runner.js:358:10)
      at /usr/local/lib/node_modules/mocha/lib/runner.js:404:12
      at next (/usr/local/lib/node_modules/mocha/lib/runner.js:284:14)
      at /usr/local/lib/node_modules/mocha/lib/runner.js:293:7
      at next (/usr/local/lib/node_modules/mocha/lib/runner.js:237:23)
      at Object._onImmediate (/usr/local/lib/node_modules/mocha/lib/runner.js:261:5)
      at processImmediate [as _immediateCallback] (timers.js:330:15)

【问题讨论】:

  • 不清楚你需要什么策略变量
  • 在控制台日志中的策略是 { version: '1.0.0', Strategy: { [Function: Strategy] super_: { [Function: OAuth2Strategy] super_: [Function: Strategy] } } } 我们是得到这个。
  • 即使它在我更新时给我同样的字符串错误

标签: node.js npm mocha.js should.js


【解决方案1】:

should.js 的语法如下:

'xxxx'.should.be.type('string');

Should.js documentation # type

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2015-05-08
    • 1970-01-01
    相关资源
    最近更新 更多