我一直在关注CoffeeMaker教程here。现在我不想覆盖测试中的任何模块/组件,但想要将Class ElectricHeater注入我的JUnit测试中。
当我这样做时,当我调用heater.on()时,我得到一个NullPointerExeception;不确定我错过了什么。
这是测试代码。
package coffee;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import javax.inject.Inject;
@RunWith(JUnit4.class)
public final class CoffeeMakerTest {
@Inject
Heater heater;
@BeforeClass
public static void setUp() {
CoffeeComponent coffeeComponent = DaggerCoffeeComponent.builder().
build();
}
@Test
public void testCoffeeMaker() throws Exception {
heater.on();
}
}
答案 0 :(得分:-1)
修改后的代码
@Singleton
@Component(modules = { DripCoffeeModule.class })
public interface CoffeeComponent {
CoffeeMaker maker();
void inject(CoffeeMakerTest coffeeMaker);
}
@Before
public void setUp() {
CoffeeComponent coffeeComponent = DaggerCoffeeComponent.builder().build();
coffeeComponent.inject(this);
}