Doesn't compile just like your code, but it should explain my idea:
class TestMyComponent1(protected _cache: Cache) extends MyComponent1 with CacheMock
class TestMyComponent2(protected _cache: Cache) extends MyComponent2 with CacheMock
trait CacheMock extends Cache {
protected val _cache: Cache
override def query(...) = _cache.get(...)
}
class Test extends TestAPI {
def componentCreator = List(new TestMyComponent1(mock1), new TestMyComponent2(mock2))
}