Tôi đang cố gắng kết hợp ScalaTest vào dự án Java của mình; thay thế tất cả các bài kiểm tra JUnit bằng ScalaTests. Tại một thời điểm, tôi muốn kiểm tra xem Guice's Injector có tiêm đúng loại không. Trong Java, tôi có một bài kiểm tra như sau:
public class InjectorBehaviour {
@Test
public void shouldInjectCorrectTypes() {
Injector injector = Guice.createInjector(new ModuleImpl());
House house = injector.getInstance(House.class);
assertTrue(house.door() instanceof WoodenDoor);
assertTrue(house.window() instanceof BambooWindow);
assertTrue(house.roof() instanceof SlateRoof);
}
}
Nhưng tôi gặp sự cố khi làm tương tự với ScalaTest:
class InjectorSpec extends Spec {
describe("An injector") {
it("should inject the correct types") {
val injector = Guice.createInjector(new ModuleImpl)
val house = injector.getInstance(classOf[House])
assert(house.door instanceof WoodenDoor)
assert(house.window instanceof BambooWindow)
assert(house.roof instanceof SlateRoof)
}
}
}
Nó phàn nàn rằng giá trị instanceof
không phải là thành viên của Door
/ Window
/ Roof
. Tôi không thể sử dụng instanceof
cách đó trong Scala?