刚刚开始使用Scala进行单元测试,并提出了这个基本问题.
class Test {
ClassToBeTested testObject;
@Before
void initializeConstructor() {
testObject = new ClassToBeTested(//Blah parameters);
}
@Test
//Blah
}
Run Code Online (Sandbox Code Playgroud)
Java中的上述示例显示我可以声明一个类型的对象ClassToBeTested并在以后初始化它.这可以在Scala中完成吗?我尝试过这个
class Test {
var testObject = new ClassToBeTested()
@Before def initializeConstructor() {
//I do not know how to proceed here!!!!!!
}
@Test def testOne() {
//Some test
}
}
Run Code Online (Sandbox Code Playgroud)
我不想在里面做所有事情,testOne()因为我想在不同的测试中使用该对象.构造函数的参数是模拟,JUnit我知道如果我全局初始化一个对象而不是内部,则不会初始化模拟@Before.
以下是如何制作它:
class Test {
var testObject: ClassToBeTested = _
@Before
def initializeConstructor() {
testObject = new ClassToBeTested()
}
@Test
def testOne() {
//Some test
}
}
Run Code Online (Sandbox Code Playgroud)
更多关于下划线init.
您还可以在第18.2节" Scala编程中的可重新分配的变量和属性 "一书中阅读更多相关信息.这是引用,对您有所帮助:
更确切地说,字段的初始化程序"= _"为该字段分配零值.零值取决于字段的类型.数字类型为0,布尔值为false,引用类型为null.这与在没有初始化程序的Java中定义相同变量的情况相同.
请注意,您不能简单地在Scala中省略"= _"初始值设定项.如果你写了:
Run Code Online (Sandbox Code Playgroud)var celsius: Float这将声明一个抽象变量,而不是未初始化的变量
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |