相关疑难解决方法(0)

如何在单元测试中避免Thread.sleep?

我们假设我有以下方法应该测试:

@Autowired
private RoutingService routingservice;

public void methodToBeTested() {
    Object objectToRoute = initializeObjectToRoute();
    if (someConditions) {
         routingService.routeInOneWay(objectToRoute);
    } else {
         routingService.routeInAnotherWay(objectToRoute);
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下RoutingService,在单独的线程中运行,因此在它的构造函数中我们有以下内容:

Thread thread = new Thread(this);
thread.setDaemon(true);
thread.start();
Run Code Online (Sandbox Code Playgroud)

问题是RoutingService改变状态,objectToRoute这正是我想要检查的,但这不会立即发生,因此测试失败.但是,如果我添加Thread.sleep()然后它可以工作,但这是不好的做法,因为我知道.

Thread.sleep()在这种情况下我该如何避免?

java junit multithreading unit-testing

11
推荐指数
2
解决办法
1万
查看次数

单元测试有时会失败,有时会失败

我有一个摩卡单元测试套件.

当我在本地运行它们时,一切正常.当我在Jenkins CI服务器上运行它们时,它们有时会失败,有时会通过.

我只是无法重现他们失败的原因.什么可能导致这种行为?

unit-testing mocha.js jenkins

10
推荐指数
3
解决办法
9884
查看次数

如何对使用jUnit简单启动线程的方法进行单元测试?

在标题中,我想测试这样的方法:

public void startThread()
{
    new Thread()
    {
        public void run()
        {
            myLongProcess();
        }
    }.start();
}
Run Code Online (Sandbox Code Playgroud)

编辑:通过评论判断我认为测试线程是否启动并不常见.所以我要调整问题......如果我的要求是100%的代码覆盖率,我是否需要测试该线程是否启动?如果是这样,我真的需要一个外部框架吗?

java testing junit multithreading unit-testing

8
推荐指数
1
解决办法
9197
查看次数

单元测试多线程应用程序

有没有人对多线程应用程序的单元测试有任何建议或知道任何框架?

junit multithreading unit-testing

5
推荐指数
3
解决办法
1万
查看次数

标签 统计

unit-testing ×4

junit ×3

multithreading ×3

java ×2

jenkins ×1

mocha.js ×1

testing ×1