我正在尝试使用Mockito对一个非常简单的junit测试进行全面的报道,我要出击了。我的免责声明是,我对Mockito是新手,尽管我试图做的事情看起来很简单。
请注意,我的junit测试通过了,只是覆盖还不完整。当测试运行时,返回true(用户列表不为空)的方法部分没有运行/覆盖。
我的问题是...
>
你能简单地模拟ldap数据吗?
非常感谢您提供的任何见解。
下面是正在测试的方法(类名=LdapRepository)。。。
public Mono<Boolean> ldapTemplateQuery(Email email) {
Mono<Boolean> blockingWrapper = Mono.fromCallable(() -> {
List<LdapUser> users = ldapTemplate.find(query().where("cn").is(email.address()), LdapUser.class);
if (users.isEmpty()) {
return false;
} else {
return true;
}
}).onErrorResume(
original -> Mono.error(new UserNotFoundException("User not found for email " + email.address())));
return blockingWrapper.subscribeOn(Schedulers.elastic());
}
这是junit课程。。。
@RunWith(MockitoJUnitRunner.class)
public class LdapUserRepositoryMockTest {
private @InjectMocks LdapUserRepository ldapUserRepository;
@Mock
private LdapTemplate ldapTemplate;
Email email = new Email("abcd@xyz.com");
User user = new User(email);
static final String password = "VGVzdEAxMjM=";
@Test
public void ldapTemplateQueryTest() {
LdapUser ldapUser = new LdapUser(user, password.toCharArray());
List<LdapUser> users = new ArrayList<>();
users.add(ldapUser);
lenient().when(ldapTemplate.find(query().where(Mockito.anyString()).is(Mockito.anyString()), LdapUser.class)).thenReturn(users);
Mono<Boolean> locked = ldapUserRepository.ldapTemplateQuery(email);
StepVerifier.create(locked).expectNext(false).verifyComplete();
}
这是报道结果的截图。。。
在别人的帮助下,我终于得到了答案。正如你将在下面看到的,这是对宽大声明的一个相当小的改变。
希望这将是一个帮助某人的过程。
@RunWith(MockitoJUnitRunner.class)
public class LdapUserRepositoryMockTest {
private @InjectMocks LdapUserRepository ldapUserRepository;
@Mock
private LdapTemplate ldapTemplateMock;
Email email = new Email("abcd@xyz.com");
User user = new User(email);
static final String PASSWORD = "VGVzdEAxMjM=";
@Test
public void ldapTemplateQueryTest() {
LdapUser ldapUser = new LdapUser(user, PASSWORD.toCharArray());
List<LdapUser> users = new ArrayList<>();
users.add(ldapUser);
lenient()
.when(ldapTemplateMock.find(Mockito.any(), Mockito.eq(LdapUser.class)))
.thenReturn(users);
Mono<Boolean> locked = ldapUserRepository.checkIfAccountLocked(email);
StepVerifier.create(locked).expectNext(true).verifyComplete();
}
}
问题内容: 我是Java新手,正在使用DrJava IDE进行测试。我有以下分区49700/40000,它显示1.0而不是1.2425。 我做错了什么吗? 问题答案: 试试,这代替: 如果两个操作数都是整数,则结果将是将被截断的整数,然后将其强制转换为双精度型。相反,如果其中一个操作数是双精度数,则结果将是双精度数。
我不能得到100%的代码覆盖率,因为我不能测试Golang的致命性。 我发现了一些问答,包括这一个,但我迷失了,因为帖子的答案是矛盾的。一方面,可以检查Golang中的代码覆盖率。另一方面,有些人主张忽略对等的测试,导致代码覆盖率低于。 尝试 根据这个定义,我的代码中有多个片段可能引发恐慌,而应该使用。
问题内容: 我正在搜索rt.jar的源代码以获取Oracle JRE / JDK 6 Update22。交付随附的src.zip并不包含所有源代码,例如sun。*(例如sun.reflect.Reflection)。 )包丢失。 在哪里可以获得完整的src.zip? 问题答案: 这个答案写于2010年,当时世界大不相同。如果仅需要JRE类的源代码,请在JDK构建中使用JRE-包括的src.zip文
在过去的几天里做了一些阅读后,我已经取得了一些进展,下面是我想出的代码: 主要活动: HTTPRequest 没有错误,一切运行正常,但问题是-我已经建立了这个代码作为一个测试,如果我可以登录我试图登录的网站,但我无法从中获得任何信息。在我按下按钮后,似乎发生了什么事情,我发送到用户界面线程的输入流给了我这个:“java.io.BufferedInputStream@afe19b8”,每次按下按钮
问题内容: 我正在使用Cobertura进行代码覆盖率分析。如果我在詹金斯(Jenkins)中运行构建,则覆盖范围结果中将包含其中的类,但覆盖率为 0% 。如果我在工作区(Eclipse)中运行代码覆盖率,则覆盖率会更高。包装的覆盖范围还可以。我错过了一些配置吗? 我的项目结构如下: 我的cobertura配置在POM文件中: 问题答案: 生成的代码不应进行测试,并且不应在代码覆盖率指标中使用。原
问题内容: 我想实现一个Java方法,该方法以URL作为输入并将整个网页(包括CSS,图像,JS(所有相关资源))存储在磁盘上。我已经使用Jsoup html解析器来获取html页面。现在,我想实现的唯一选择是使用jsoup获取页面,现在解析html内容并将相对路径转换为绝对路径,然后再次请求获取javascript,图像等并将其保存在磁盘上。我还阅读了有关HTML清洁器,htmlunit解析器的