使用junit测试scala类

使用junit测试scala类,scala,junit,Scala,Junit,我试图在scala中实现一个简单的堆栈,并使用junit和scalatest对其进行测试,以了解其中的差异。然而,我遇到了一些问题 下面是scala类: class Stack[T] { var list: List[T] = Nil def push(x : T) { list = x :: list } def pop() : T = { val head = list.head list = list.tail he

我试图在scala中实现一个简单的堆栈,并使用junit和scalatest对其进行测试,以了解其中的差异。然而,我遇到了一些问题

下面是scala类:

class Stack[T] {
    var list: List[T] = Nil

    def push(x : T) { list = x :: list }
    def pop() : T = {
        val head = list.head
        list = list.tail
        head
    }
    def isEmpty(): Boolean = list == Nil
}
我用scalac编译了它,并尝试从普通java junit类调用它,如下所示:

public class StackTests {

    @Test
    public void testPush(){
        Stack<String> s = new Stack<String>();
    }
}


错误信息非常清楚,但我不知道如何修复它。我是否必须以某种方式引用java测试类中的不可变列表?

list
Nil
::
都在Scala标准库中,所以请将其放在类路径中。

谢谢,您能给出一个这样的示例吗?我是scala新手,我甚至不知道标准库在哪里。找到了。因为我使用的是自制软件,所以它位于:/usr/local/cillar/scala/2.11.2/libexec/lib/scala-library.jar。
java -cp ../junit/junit.jar:../junit/hamcrest-core.jar:. org.junit.runner.JUnitCore StackTests
...
There was 1 failure:
1) testPush(StackTests)
java.lang.NoClassDefFoundError: scala/collection/immutable/List
    at StackTests.testPush(StackTests.java:9)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
...