2017-06-27 2 views
0

https://facebook.github.io/jest/docs/en/getting-started.htmlscala.js Tests mit Scherz

Jest Läufer müssen eine Datei mit der Endung .test/spec.js

sum.test.js

const sum = require('./sum'); 

test('adds 1 + 2 to equal 3',() => { 
    expect(sum(1, 2)).toBe(3); 
}); 

ich erreicht etwas ähnliches durch die Schaffung neuer SJS Projekt

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

jetzt npm run test meine Tests laufen, ist es möglich, durch Schreiben von Tests in test/scala ähnliche Ergebnisse zu erzielen (ohne ein neues separates Projekt zu erstellen). Wahrscheinlich suche ich nach einer Möglichkeit, main method für Tests und scalaJSUseMainModuleInitializer in Test := true zu definieren? s

Antwort

1

Es ist völlig in Ordnung, eine main Objekt/Methode im src/test/scala/ Verzeichnis zu definieren und verwenden

scalaJSUseMainModuleInitializer in Test := true 

es ausführen zu können, test:run von sbt zu benutzen.