我有一个类似以下的课程;
class ClassA {
private static File myDir;
// myDir is created at some stage
private static String findFile(final String fileName) {
for (final String actualBackupFileName : myDir.list()) {
if (actualBackupFileName.startsWith(removeExtensionFrom(backupFile))) {
return actualBackupFileName;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以,基本上,我想通过模拟File类来测试这个类,以便在调用list()时它返回我在我的测试类中定义的字符串列表.
我已经得到了以下内容,但它在一分钟内没有工作,可能有一些明显我做错了 - 我是JMockit的新手 - 非常感谢任何帮助!
@Mocked("list") File myDir;
@Test
public void testClassA() {
final String[] files = {"file1-bla.txt"};
new NonStrictExpectations() {{
new File(anyString).list();
returns(files);
}};
String returnedFileName = Deencapsulation.invoke(ClassA.class, "findFile","file1.txt");
// assert returnedFileName is equal to "file1-bla.txt"
}
Run Code Online (Sandbox Code Playgroud)
运行上面的测试时,我得到了ClassA中myDir字段的NullPointerException - 所以看起来它没有被正确模拟?
我从LDAP服务器导出了以下ldif文件,现在我正在尝试导入它,以便我可以复制我从中导出的目录:
dn: cn=MYCOMPANY Users,dc=mycompany,dc=com
changetype: add
objectClass: posixGroup
objectClass: top
cn: MYCOMPANY Users
gidNumber: 1001
dn: cn=jim smith,cn=MYCOMPANY Users,dc=mycompany,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
givenName: jim
cn: jim smith
sn: smith
gidNumber: 1000
homeDirectory: /home/users/arolls
uid: jsmith
uidNumber: 1038
userPassword: {MD5}X03MO1qnZdYdgyfeuILPmQ==
dn: cn=dave jones,cn=MYCOMPANY Users,dc=mycompany,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
givenName: dave
userPassword: {MD5}FhCDh0PMkOPk/dp0goLZuA==
loginShell: /bin/sh
cn: dave jones
sn: dave
gidNumber: 1000
homeDirectory: /home/users/dave
uid: dave
uidNumber: 1006
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用它导入它
LDIFReader r = new LDIFReader(resourceAsStream);
LDIFChangeRecord readEntry = …Run Code Online (Sandbox Code Playgroud) 我有以下型号:
1 RepositoryDTO可以有许多ResourceDTO,并且在每个ResourceDTO中都是一个TeamDTO.
因此,要从RepositoryDTO获取TeamDTO,我将执行以下操作:
RepositoryDTO repoDTO = ...
List<TeamDTO> teamsLinkedToRepo = getTeamsLinkedTo(repoDTO);
private List<TeamDTO> getTeamsLinkedTo(final RepositoryDTO repository) {
final List<TeamDTO> teamsLinkedToRepository = new ArrayList<TeamDTO>();
for (final ResourceDTO resourceDTO : repository.getResources()) {
teamsLinkedToRepository.add(resourceDTO.getTeam());
}
return teamsLinkedToRepository;
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道有没有更好的成语,可能使用谷歌番石榴?
我有像这样的MessageFormat;
final MessageFormat messageFormat = new MessageFormat("This is token one {0}, and token two {1}");
Run Code Online (Sandbox Code Playgroud)
我只是想知道我是否有类似的字符串;
String shouldMatch = "This is token one bla, and token two bla";
String wontMatch = "This wont match the above MessageFormat";
Run Code Online (Sandbox Code Playgroud)
如何检查上述字符串是否是使用messageFormat创建的?即它们匹配messageFormat?
非常感谢!
我正在阅读一个文件;
FileReader reader = new FileReader(source);
FileWriter writer = new FileWriter((destination));
int char = 0;
while ((char = reader.read()) != -1) {
writer.write(char);
}
Run Code Online (Sandbox Code Playgroud)
基本上,我想首先检查源文件是否包含某一行,然后是换行符,如果是,我想跳过这些行写入目标文件.
请注意,我想跳过的换行符将被添加到源文件中;
System.getProperty("line.separator").getBytes()
Run Code Online (Sandbox Code Playgroud)
非常感谢!
在下面的代码片段中,如果抛出ex1,将被第二个catch块捕获,还是会被抛回到方法的调用者?
如果它被抛回到调用者,然后在finally块(ex2)中发生第二个异常,这是否意味着2个异常将被抛回调用者(ex1和ex2)?
try {
// write to file
} catch (IOException ex1) {
throw ex1;
} finally {
try {
aBufferedWriter.close();
} catch (IOException ex2) {
throw ex2;
}
}
Run Code Online (Sandbox Code Playgroud)