Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 写入UT以同时访问集合_Java_Unit Testing_Junit4 - Fatal编程技术网

Java 写入UT以同时访问集合

Java 写入UT以同时访问集合,java,unit-testing,junit4,Java,Unit Testing,Junit4,我有一个类似于缓存的类,类似这样: class Cache { Map<String, Object> objects; Map<String, List<Object>> lists; //... List<Object> getFromLists(String key) { //... } Object getFromObjects(String key) { //... } vo

我有一个类似于缓存的类,类似这样:

class Cache {
   Map<String, Object> objects;
   Map<String, List<Object>> lists;
   //...
   List<Object> getFromLists(String key) {
   //...
   }

   Object getFromObjects(String key) {
   //...
   }

   void addObject(String key, Object value) {
   //...
   }
   //...
}
类缓存{
地图对象;
地图清单;
//...
列表GetFromList(字符串键){
//...
}
对象getFromObjects(字符串键){
//...
}
void addObject(字符串键、对象值){
//...
}
//...
}

现在,我正在尝试编写UTs以确保“缓存”的预期质量,我想知道如何编写UTs以确保在我有并发访问时结构也能工作。到目前为止,我尝试的是启动多个线程,一些线程编写其他线程并读取和检查队列的内容。我会很感激其他的建议,也许是一些工具

考虑使用。该库旨在针对您的“工作单元”运行负载测试,以增加遇到并发问题的可能性。

我前几天遇到过。这似乎是测试并发场景的一个非常优雅的解决方案,特别是在我在问题中提到的情况下。包含的一些示例为您指明了正确的方向。

您无法可靠地测试并发性,这是一件可以认为是随机的事情。为了编写好的、线程安全的代码,您需要完全掌握并发技术,并且几乎完全依赖这些技术。每次考试都可能通过,但灾难性失败的可能性仍然是十万分之一。@Boristeider我也有同样的感觉,只是想问问而已!谢谢你的意见。