首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ospec与mithril javascript一起使用

问如何将ospec与mithril javascript一起使用
EN

Stack Overflow用户
提问于 2019-02-20 17:48:48
回答 1查看 163关注 0票数 0

我尝试使用o.spec来测试我的组件,但是失败了。

"dart test“的错误信息为:

代码语言:javascript
复制
tests/MyComponent.js:1
(function (exports, require, module, __filename, __dirname) { import MyComponent from "./src/mycomponent"
                                                              ^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:617:28)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Glob.<anonymous> (node_modules/mithril/ospec/bin/ospec:37:37)
error Command failed with exit code 1.

由npm或yarn设置:

代码语言:javascript
复制
yarn add mithril@next webpack webpack-cli

编辑package.json:

代码语言:javascript
复制
{
  ...
  "name": "my-project",
  "scripts": {
      "start": "webpack src/index.js --output bin/app.js -d --watch",
      "build": "webpack src/index.js --output bin/app.js -p",
      "test": "ospec"
  }
}

index.html:

代码语言:javascript
复制
<!DOCTYPE html>
<body>
 <script src="bin/app.js"></script>
</body>

src/mycomponent.js:

代码语言:javascript
复制
//var m = require("mithril")
import m from "mithril"

//module.exports = {
export default {
  view: function(vnode) {
      return m("div",
          m("p", "Hello World")
      )
  }
}

src/index.js:

代码语言:javascript
复制
import m from "mithril"
import MyComponent from "./mycomponent"
//var m = require("mithril")
//var MyComponent = require("./mycomponent")

m.mount(document.body, MyComponent)

测试/MyComponent.js

代码语言:javascript
复制
import MyComponent from "./src/mycomponent"
//var MyComponent = require("./src/mycomponent")

o.spec("MyComponent", function() {
    o("returns a div", function() {
        var vnode = MyComponent.view()

        o(vnode.tag).equals("div")
        o(vnode.children.length).equals(1)
        o(vnode.children[0].tag).equals("p")
        o(vnode.children[0].children).equals("Hello world")
    })
})
EN

回答 1

Stack Overflow用户

发布于 2019-04-22 08:10:01

您需要使用以下命令模拟环境

代码语言:javascript
复制
global.window = require("mithril/test-utils/browserMock.js")();
global.document = window.document;

在你的测试中。

欲了解更多信息,请访问https://mithril.js.org/testing.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54783287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档