首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Junit:确定junit是否正在运行

Junit:确定junit是否正在运行
EN

Stack Overflow用户
提问于 2014-11-10 13:14:43
回答 1查看 777关注 0票数 0

例如,是否存在Junit.isRunning()是junit框架:

代码语言:javascript
复制
public void m() {
    if (Junit.isRunning()) {
       // load little test data 
    } else {
        // load large real data
    }
}

我的问题是:如何确定当前的env是测试阶段还是不测试阶段(比如rails ENV'RAILS_ENV‘==’测试‘)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-10 14:10:14

正如其他人所评论的那样,这似乎是个坏主意--因为您将是与实际生产代码不同的单元测试代码。

您可以将模拟数据用于测试,方法是使用类似Mockito:http://code.google.com/p/mockito/这样的模拟框架。

假设您正在通过一个简单的DAO访问数据:

代码语言:javascript
复制
public class DAO {

public Data loadData() {

    Data data = null;

    // Load data from database and set in data variable ...

    return data;
}

}

然后,测试中的方法可能如下所示:

代码语言:javascript
复制
public class MyClass {

private DAO dao;

public void m() {

    dao.loadData();

    // Rest of method ...
}

public void setDao(DAO dao) {
    this.dao = dao;
}

}

你的考试课:

代码语言:javascript
复制
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 ...
}

}

现在,测试中的方法将在单元测试期间使用模拟数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26844722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档