我正在尝试使用注释 @MockBean 初始化(通过模拟)两个对象
似乎只有当我调用方法模拟(className)时才有效,但由于我想在多个方法上使用模拟类,所以我不想在测试方法中继续重复相同的代码。
这是我的测试课:
@RunWith(MockitoJUnitRunner::class)
class WordServiceTest {
@MockBean
lateinit var wordRepositoryMock: WordRepository
@MockBean
private lateinit var wordMapperMock: WordMapper
@Test
fun findAllTest() {
// Error: lateinit property wordRepositoryMock has not been initialized
val wordService = WordService(wordRepositoryMock, wordMapperMock)
`when`(wordRepositoryMock.findAll()).thenReturn(listOf(
WordEntity(UUID.randomUUID(), "xxx"),
WordEntity(UUID.randomUUID(), "xxx")))
assertEquals(2, wordService.findAll().size)
}
@Test
fun wordExistsTest() {
// This works fine
val wordRepositoryMock = mock(WordRepository::class.java)
val wordMapperMock = mock(WordMapper::class.java)
val wordService = WordService(wordRepositoryMock, wordMapperMock)
val word = "xxx"
`when`(wordRepositoryMock.existsWordEntityByName(word)).thenReturn(true)
assertEquals(true, wordService.wordExists(word))
}
}
Run Code Online (Sandbox Code Playgroud)
我不想使用 Spring Boot @Autowired …
我试图在API返回错误时显示警报。对于警报窗口,我正在使用sweetalert2。在我的渲染方法中,我正在检查错误消息是否包含内容。如果包含错误消息,我想向用户显示警报。
提交表单时,我会进行API调用。如果返回错误,则reducer更改存储(状态),并再次呈现页面。
由于我添加了以下行,因此我不断收到错误消息:
{saveLabelFetchError && this.toggleAlertFailure(saveLabelFetchError)}
Run Code Online (Sandbox Code Playgroud)
错误:
index.js:1375警告:unable_flushDiscreteUpdates:React已经渲染时无法刷新更新。
我的组件:
{saveLabelFetchError && this.toggleAlertFailure(saveLabelFetchError)}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我总是在控制台中收到此错误消息。
我编写了一个函数,用于根据requestparams从数据库中获取信息。以下if-else语句是一个巨大的问题。如果我们继续添加更多过滤器,则需要继续为所有可能的路径添加语句。
fun getMessages(name: String, pageable: Pageable, locale: String?, subject: String?,
recipient: String?): Page<MessageDTO>? {
val messagePageable= if (!locale.isNullOrEmpty() && !subject.isNullOrEmpty() && !recipient.isNullOrEmpty()) {
messageRepository.findAll(where(hasMessageName(name).and(hasLocale(locale!!)
.and(hasSubject(subject!!).and(hasRecipient(recipient!!))))), pageable)
} else if (!locale.isNullOrEmpty()) {
messageRepository.findAll(where(hasMessageName(name).and(hasLocale(locale!!))), pageable)
} else if (!subject.isNullOrEmpty()) {
messageRepository.findAll(where(hasMessageName(name).and(hasSubject(subject!!))), pageable)
} else {
messageRepository.findAll(where(hasMessageName(name)), pageable)
}
return messagePageable.map { messageMapper.toMessageDTO(it) }.takeIf { it.content.isNotEmpty() }
}
Run Code Online (Sandbox Code Playgroud)
应该有一个更好的书面方式。我感谢您的帮助。
我正在尝试运行以下循环:
DECLARE
v_banknumber varchar2(9) := '123456789';
v_counter number := 9;
v_result number;
begin
for i in v_banknumber
loop
v_result := v_counter * TO_NUMBER(i) + v_result;
v_counter := v_counter - 1;
end loop;
end;
Run Code Online (Sandbox Code Playgroud)
我在第2行出现错误:
Error report -
ORA-06550: line 6, column 10:
PLS-00456: item 'V_BANKNUMBER' is not a cursor
ORA-06550: line 6, column 1:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Run Code Online (Sandbox Code Playgroud)
如果我读得很好,似乎应该可以。在座的任何人都可以解释我为什么不起作用?
必须将第一个数字乘以9,第二个数字乘以8,第三个数字乘以7,依此类推,并将其总和保存在结果变量中。
我的 Kafka Producer 正在发送 Json 格式的对象列表。
我试图弄清楚如何让我的消费者反序列化列表。我能够接收单个对象并读取它,但是当我将代码更改为类型 List 时,我收到以下错误:
Error:(32, 47) java: incompatible types: cannot infer type arguments for org.springframework.kafka.core.DefaultKafkaConsumerFactory<>
reason: inference variable V has incompatible equality constraints java.util.List<nl.domain.X>,nl.domain.X
Run Code Online (Sandbox Code Playgroud)
编辑
通过将 TypeReference 添加到 JsonDeserilizer 已解决此错误。
当前问题:
消费消息时,它不是我定义的类型(即 List< X > ),而是返回LinkedHashMap
这是消费者配置:
@EnableKafka
@Configuration
public class KafkaConfiguration {
@Bean
public ConsumerFactory<String, List<X>> xConsumerFactory() {
Map<String, Object> config = new HashMap<>();
config.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");
config.put(ConsumerConfig.GROUP_ID_CONFIG, "group_json");
config.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
config.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonDeserializer.class);
return new DefaultKafkaConsumerFactory<>(config, new StringDeserializer(),
new JsonDeserializer<>(new TypeReference<List<X>>() …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从多个表中删除行,但在 medewerkers m 中出现语法错误,
谁能告诉我我在这里做错了什么?:
declare
v_mnr medewerkers.mnr%type;
procedure ontsla_med(p_mnr in medewerkers.mnr%type)
IS
BEGIN
DELETE FROM medewerkers m, INSCHRIJVINGEN i , UITVOERINGEN u WHERE m.MNR = p_mnr and i.cursus = p_mnr and u.docent = p_mnr;
END ontsla_med;
BEGIN
ontsla_med(7000);
END;
Run Code Online (Sandbox Code Playgroud)
好像删除语句是错误的?
我有一张桌子:
表:Berichten列:ID,Bericht,Bericht,Klant_ID,Product_ID,Datum
我在其中有一行,并希望用与列中相同的klant_id向用户显示它,当我运行以下语句时,我得到10行
select
b.ID,
b.Product_id ,
b.Klant_id,
b.onderwerp
from BERICHTEN b, KLANTEN k
WHERE b.klant_id = (select ID from klanten where email = 'joris@am.nl')
Run Code Online (Sandbox Code Playgroud)
知道我为什么得到10行而不是1行?
java ×3
oracle ×3
kotlin ×2
plsql ×2
sql ×2
apache-kafka ×1
if-statement ×1
javascript ×1
mocking ×1
reactjs ×1
simplify ×1
spring ×1
spring-kafka ×1
sweetalert ×1
testing ×1
unit-testing ×1