例如,是否存在Junit.isRunning()是junit框架:
public void m() {
if (Junit.isRunning()) {
// load little test data
} else {
// load large real data
}
}我的问题是:如何确定当前的env是测试阶段还是不测试阶段(比如rails ENV'RAILS_ENV‘==’测试‘)
发布于 2014-11-10 14:10:14
正如其他人所评论的那样,这似乎是个坏主意--因为您将是与实际生产代码不同的单元测试代码。
您可以将模拟数据用于测试,方法是使用类似Mockito:http://code.google.com/p/mockito/这样的模拟框架。
假设您正在通过一个简单的DAO访问数据:
public class DAO {
public Data loadData() {
Data data = null;
// Load data from database and set in data variable ...
return data;
}}
然后,测试中的方法可能如下所示:
public class MyClass {
private DAO dao;
public void m() {
dao.loadData();
// Rest of method ...
}
public void setDao(DAO dao) {
this.dao = dao;
}}
你的考试课:
public class MyClassTest {
@Test
public void testM() {
MyClass myClass = new MyClass();
DAO mockDAO = mock(DAO.class);
Data mockData = mock(Data.class);
when(mockDAO.loadData()).thenReturn(mockData);
myClass.setDao(mockDAO);
// Call method under test
myClass.m();
// Rest of test ...
}}
现在,测试中的方法将在单元测试期间使用模拟数据。
https://stackoverflow.com/questions/26844722
复制相似问题