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ị instanceofkhông phải là thành viên của Door/ Window/ Roof. Tôi không thể sử dụng instanceofcách đó trong Scala?