2017-08-29 16 views
0

内のブロック()メソッドの戻り値はnull iは、プロジェクトの原子炉を学び、問題を抱えているしようとしています。春WebFlux:春データリMongoDBの

@Test 
@DisplayName("check that standaloneUser fields are correct") 
void validateUserFields() { 
    userService.save(standaloneUser).subscribe(); 
    assertEquals(userService.count().block(), Long.valueOf(1)); 
    User user = userService.findByEmail("[email protected]").block(); 
    assertNotNull(user); 
    assertNotNull(user.getId()); 
    assertEquals(user.getFirstName(), "test"); 
    assertEquals(user.getLastName(), "test"); 
    assertNotEquals(user.getPassword(), "test"); 
    assertEquals(user.getRole(), Role.CANDIDATE); 
    assertNotNull(user.getCreatedDate()); 
    assertNull(user.getStoppedDate()); 
    assertEquals(user.getEmail(), "[email protected]"); 
} 

時にはblock()メソッドがnullを返します。 誰が私に説明できますか? おかげ

答えて

1

block()リターンヌル、それはこの場合には、ユーザーが見つからなかったことを意味しており、Monoは空の完成を意味します。

は、それが正しく保存されなかったことだろうか?あなたがuserService.save(standaloneUser).subscribe()を行う注

(ユーザー数を主張するが)。それは、「非同期ファイア・アンド・フォーゲット」であるとして、この形式は、多くの場合、理想的ではありません。

  • 非同期 - >エラー・ハンドラがあることを意味しない - >それは、その後は
  • 火をアサートし、忘れて後を完了かもしれませんはエラーで終了し、それをあなたから隠す可能性があります

subscribeを呼び出すときに、少なくともonNextとonErrorハンドラのラムダを設定する習慣を作ってください。

関連する問題