首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同步法的JUnit检验

同步法的JUnit检验
EN

Stack Overflow用户
提问于 2017-07-26 12:34:32
回答 1查看 2.5K关注 0票数 1

我已经创建了一个Spring应用程序。我有一个同步的方法。我想要创建JUnit测试来测试这个方法是否同步。下面是这个类和方法:

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


public synchronized void saveTheFile(String theTemperature, String cityName) throws IOException {
    InputStream streamIn = toInputStream(theTemperature, "UTF-8");
    OutputStream streamOut = new FileOutputStream(cityName + ".txt", true);
    try {
        IOUtils.copy(streamIn, streamOut);
    } finally {

        IOUtils.closeQuietly(streamIn);
        IOUtils.closeQuietly(streamOut);
    }

  }

}

我想我需要为此使用多线程,但我甚至不知道如何启动我的@Test。拜托,建议!

EN

回答 1

Stack Overflow用户

发布于 2017-07-26 12:44:49

基于您没有使用任何可变状态的事实,我认为您根本不需要同步任何东西。

不过,就测试并发性而言,我建议您使用tempus-fugit库( http://tempusfugitlibrary.org/)。

使用这个库,编写任何有关多线程和并发性的测试都非常容易:

代码语言:javascript
复制
@RunWith(ConcurrentTestRunner.class)
public class SomeTest {
  @Test
  public void test1() {}

  @Test
  public void test2() {}
}

根据医生的说法:

类中的每个测试方法都将在自己的线程上运行,并与该类中的任何其他测试方法并行运行。因此,给定测试类的线程数将等于该类中的测试方法数。

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

https://stackoverflow.com/questions/45327152

复制
相关文章

相似问题

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