java - Junit:判断junit是否在运行

标签 java unit-testing testing junit junit4

有没有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/

相关文章:

java - 为什么 android.util.Base64 返回不同的字符串?

unit-testing - 如何重构和单元测试复杂的遗留 Java EE5 EJB 方法?

java - 使用 Easymock 进行案例测试

python - python中是否有任何基于故事的BDD测试框架?

java - 从 ArrayList 访问特定对象字段

java - HashSet中加入WrappedString和String的区别

Android单元测试没有被 mock

windows - 寻找用于 Web 测试的 Windows GUI 测试工具,如 Selenium

php - 尝试使用 Codeception 和 Yii2 接受 native js 弹出窗口时出错

java - 动态调整窗口大小 swt java