我有一个单元测试和一个帮助类。 不幸的是帮助班#39; autowire不起作用。 它在MyTest类中工作正常。
private int getPixelsToDP(int dp) {
float scale = getResources().getDisplayMetrics().density;
int pixels = (int) (dp * scale + 0.5f);
return pixels;
}
我想避免使用setter,因为我喜欢其中10个对象,不同的测试有不同的对象。 那么让@Autowired在Helper课程中工作需要什么? THX!
答案 0 :(得分:0)
你的助手类没有弹簧实例化......你必须添加像@component这样的注释(如果你正在使用包扫描),或者你可以在springconfiguration类中将类定义为Bean。但是如果你自己创建实例,它就不起作用
答案 1 :(得分:0)
你不能用Helper
语句创建new
类,但是你必须让spring创建它成为一个弹簧,因此它的@Autowired
字段会被注入。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath*:context.xml"})
@Component
public class MyTest {
@Autowired
private Something something1;
@Autowired
private Something something2;
..
@Autowired
private Helper helper
@Test
public void test1() {
helper.initDB();
}
}
//this class must been found by springs component scann
@Service
public class Helper {
@Autowired
private Something something1;
@Autowired
private Something something2;
public void initDB(){...}
}