我具有以下结构,并且遇到一个问题,即我的测试无法从我的DataLoader.getListForName
到达Autowired类MyHelperTest.testGetDataAsList
。这意味着当我运行测试时,流程甚至都没有转到getListForName
方法。我想念的是什么
@Component
public class MyHelper{
@Autowired
private DataLoader dataLoader;
public List<String> getDataAsList(String name, boolean flag)
{
List<String> dataList = new ArrayList<>();
dataList.addAll(dataLoader.getListForName(name,flag));
return dataList;
}
}
=====
@Component
public class DataLoader{
Map<String,List<String>> myMap = new HashMap<>();
public List<String> getListForName(String name, boolean flag){
if(flag) return myMap.get(name);
}
}
=====
public class MyHelperTest{
@InjectMocks
private MyHelper myHelper;
@Mock
private DataLoader dataLoader;
@Test
public void testGetDataAsList(){
List<String> myList = myHelper.getDataAsList("test1",true);
assertTrue(myList.contains("Age"));
}
}
答案 0 :(得分:0)
由于您已嘲笑/archive
-/a
-file.pl
-/b
-file.py
-file1.html
-index.html
-some_junk.zip
,因此在定义它之前没有任何有价值的操作。
例如:
如果您想致电VERBOSE: Preparing to compress...
VERBOSE: Performing the operation "Compress-Archive" on target "
C:\archive\a
C:\archive\b".
VERBOSE: Adding 'C:\archive\a\file.pl'.
VERBOSE: Adding 'C:\archive\b\file.py'.
VERBOSE: Adding 'C:\archive\b\file1.html'.
VERBOSE: Adding 'C:\archive\index.html'.
VERBOSE: Adding 'C:\archive\some_junk.zip'.
您需要设置
dataLoader
在您调用它之前。
请记住,模拟始终会生成没有任何实际属性或方法的模拟对象,而不是已定义了其所有属性或方法的真实对象