scala.js 开玩笑地测试
scala.js testing with jest
https://facebook.github.io/jest/docs/en/getting-started.html
Jest runner 需要后缀为 .test/spec.js
的文件
sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
我通过创建新的 sjs 项目实现了类似的东西
package myapp.test
import scala.scalajs.js
import scala.scalajs.js.annotation.JSGlobalScope
object App {
def main(args: Array[String]): Unit = {
import Jest._
test("add", () => {
expect(1+ 2).toBe(3);
})
}
}
@JSGlobalScope
@js.native
object Jest extends js.Object {
def test(str: String, function: js.Function0[_]): Unit = js.native
def expect[T](in:T) : Matcher[T] = js.native
}
@js.native
trait Matcher[T] extends js.Object {
def toBe(in:T):Unit = js.native
}
//build.sbt
artifactPath in Compile in fastOptJS := new File("./scalajs.test.js")
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule))
scalaJSUseMainModuleInitializer := true
现在 npm run test
运行 我的测试,是否可以通过在 test/scala 中编写测试来实现类似的效果?(无需创建新的单独项目)。可能我正在寻找一种方法来定义 main method
用于测试和 scalaJSUseMainModuleInitializer in Test := true
? :s
在src/test/scala/
目录下定义一个main
object/method就完全OK了,使用
scalaJSUseMainModuleInitializer in Test := true
要运行它,使用test:run
from sbt.
https://facebook.github.io/jest/docs/en/getting-started.html
Jest runner 需要后缀为 .test/spec.js
的文件sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
我通过创建新的 sjs 项目实现了类似的东西
package myapp.test
import scala.scalajs.js
import scala.scalajs.js.annotation.JSGlobalScope
object App {
def main(args: Array[String]): Unit = {
import Jest._
test("add", () => {
expect(1+ 2).toBe(3);
})
}
}
@JSGlobalScope
@js.native
object Jest extends js.Object {
def test(str: String, function: js.Function0[_]): Unit = js.native
def expect[T](in:T) : Matcher[T] = js.native
}
@js.native
trait Matcher[T] extends js.Object {
def toBe(in:T):Unit = js.native
}
//build.sbt
artifactPath in Compile in fastOptJS := new File("./scalajs.test.js")
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule))
scalaJSUseMainModuleInitializer := true
现在 npm run test
运行 我的测试,是否可以通过在 test/scala 中编写测试来实现类似的效果?(无需创建新的单独项目)。可能我正在寻找一种方法来定义 main method
用于测试和 scalaJSUseMainModuleInitializer in Test := true
? :s
在src/test/scala/
目录下定义一个main
object/method就完全OK了,使用
scalaJSUseMainModuleInitializer in Test := true
要运行它,使用test:run
from sbt.