Jan*_*cki 3 refactoring program-entry-point scala
在几个Scala对象中,我定义了一个调用runTests的main方法,runTests是Test中的一个抽象方法.有没有办法将main方法分解到一个公共位置(Trait或其他解决方案),这样我仍然可以通过键控在Eclipse中运行测试ctrl- F11?
这就是我目前所拥有的,
https://github.com/janekdb/stair-chess/blob/master/src/chess/model/BoardModelTest.scala
object BoardModelTest extends Test with TestUtils {
def main(args: Array[String]) {
runTests
}
def runTests {
...
Run Code Online (Sandbox Code Playgroud)
https://github.com/janekdb/stair-chess/blob/master/src/test/Test.scala
trait Test {
def runTests: Unit
...
Run Code Online (Sandbox Code Playgroud)
我在这台电脑上没有Eclipse,所以我无法测试它是否适用于Ctrl + F11,但我认为你想要一个自我类型:
trait Main {
self: Test =>
def main(args: Array[String]) {
runTests
}
}
Run Code Online (Sandbox Code Playgroud)
然后你只需将它混合在你的Test特性之后:
object BoardModelTest extends Test with TestUtils with Main {
def runTests {}
}
Run Code Online (Sandbox Code Playgroud)