Cucumber 如何使用mock模拟forEach行为

Cucumber 如何使用mock模拟forEach行为,cucumber,bdd,junit5,Cucumber,Bdd,Junit5,我是使用BDD的Junits新手,我正在尝试模仿下面的forEach行为,但我遇到了空指针异常。有人能帮我在下面的场景中实现BDD吗 书刊 图书服务 有人建议我,请在抛出NPE的行上设置一个断点,并通过调试器运行它,找出在该点不应该为null的内容,然后从那里找出它。从提供的代码中,我看不出哪一行是第41行,因为代码中没有41行。这似乎是您另一篇文章的副本:-请删除其中一个问题。 Feature: Test CURD Methods in BOOKSTORE Scenario: Verif

我是使用BDD的Junits新手,我正在尝试模仿下面的forEach行为,但我遇到了空指针异常。有人能帮我在下面的场景中实现BDD吗

书刊 图书服务
有人建议我,请在抛出NPE的行上设置一个断点,并通过调试器运行它,找出在该点不应该为null的内容,然后从那里找出它。从提供的代码中,我看不出哪一行是第41行,因为代码中没有41行。这似乎是您另一篇文章的副本:-请删除其中一个问题。
Feature: Test CURD Methods in BOOKSTORE

  Scenario: Verify all books
    Given Execute Book Details
    When I Set book request
    Then I receive valid Response
@Service
public class BooksService {
    @Autowired
    BooksRepository booksRepository;
    public List<Books> getAllBooks() {
        List<Books> books = new ArrayList<Books>();
        booksRepository.findAll().forEach(books1 -> books.add(books1));
        return books;
    }
}
public class BookServiceStepDefinations {
    
    @Mock
    BooksRepository booksRepository;
    @InjectMocks
    BooksService booksService;
    Books book;

    @Given("^Execute Book Details$")
    public void execute_Book_Details() throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        book=new Books();
    }

    @When("^I Set book request$")
    public void i_Set_book_request() throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        book.setBookid(1);
        book.setBookname("A");
        book.setAuthor("A1");
        book.setPrice(100);
        List<Books>booksList=new ArrayList<Books>();
        booksList.add(book);
        Mockito.when(booksRepository.findAll()).thenReturn(booksList);
        booksService.getAllBooks();
    }

    @Then("^I receive valid Response$")
    public void i_receive_valid_Response() throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        Assert.assertEquals(1, booksService.getAllBooks().size());
    }
}
java.lang.NullPointerException
    at com.javatpoint.BookServiceStepDefinations.i_Set_book_request(BookServiceStepDefinations.java:41)
    at ✽.When I Set book request(book.feature:5)