我想用mocha测试我的Trails.js项目的模型.我使用trailpack-waterline将我的模型加载到Waterline ORM中.
在Trails Docs之后我创建了一个User.test.js:
'use strict'
const assert = require('assert')
describe('User Model', () => {
let User
before(() => {
assert(global.app.models.User)
User = global.app.models.User
})
it('should exist', () => {
assert(User)
})
})
Run Code Online (Sandbox Code Playgroud)
这没有任何错误.
但我无法以任何方式实例化该模型.按照Docs的示例new User({...})应创建一个新的用户对象,但此代码会抛出一个错误说明User is not a constructor.并且水线文档使用的示例User.create({...})似乎都不起作用.
打印出用户模型显示它只包含两个methods: [ 'getModelName', 'getTableName' ].
如何实例化水线模型进行单元测试?
我在测试之前使用Eslint来修改Trails.js项目的代码.Tails.js附带现有的预配置eslint-config-trails.但是,当我测试我的代码时,eslint会Definition for rule 'no-global-assign' was not found为我的代码库中的每个.js文件抛出一个错误.
手动添加规则:
"rules": {
"no-global-assign": ["error", {"exceptions": ["Object"]}]
}
Run Code Online (Sandbox Code Playgroud)
不修复错误.设置规则"warn"使我至少运行测试,但为每个.js文件输出警告.
我正在使用 Parsec 为日志文件编写解析器。该日志文件的每一行都遵循通用结构,A:B:C:D其中组件 A、B、C 和 D 遵循简单的规则。我已经为每个组件编写了解析器,我想将它们组合成一个解析器。我目前的方法有效,但我觉得必须有更好的解决方案。一个直接的缺点是,对于包含超过 4 个组件的日志文件,它无法很好地扩展。
parser :: (a -> b -> c -> d -> e) -> Parser a -> Parser b -> Parser c -> Parser d -> Parser e
parser f pa pb pc pd = f <$> pa <* (char ':') <*> pb <* (char ':') <*> pc <* (char ':') <*> pd
Run Code Online (Sandbox Code Playgroud)
我搜索了合适的解析器组合器,但唯一接近的组合器是sepBy,它不适用于此用例。任何帮助表示赞赏!
javascript ×2
trailsjs ×2
eslint ×1
gulp-eslint ×1
haskell ×1
mocha.js ×1
parsec ×1
parsing ×1
unit-testing ×1
waterline ×1