有没有Junit.isRunning()是junit框架,例如:
public void m() {
if (Junit.isRunning()) {
// load little test data
} else {
// load large real data
}
}
我的问题是:如何确定当前环境是否处于测试阶段(如 rails ENV['RAILS_ENV'] == 'test')
最佳答案
正如其他人评论的那样,这似乎是个坏主意 - 因为您将对与实际生产代码不同的代码进行单元测试。
您可以通过使用像 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 ...
}
现在被测方法将在单元测试期间使用模拟数据。
关于java - Junit:判断junit是否在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26844722/