尝试了解 Codility NailingPlanks 的解决方案。
\n\n问题链接:\n https://app.codility.com/programmers/lessons/14-binary_search_algorithm/nailing_planks/
\n\n\n\n\n给定两个由 N 个整数组成的非空数组 A 和 B。\n 这些数组代表 N 个木板。更准确地说,A[K] 是第 K\xe2\x88\x92 个木板的起点,\n B[K] 是终点。
\n\n接下来,给出一个由 M 个整数组成的非空数组 C。该数组代表 M 个钉子。更准确地说,C[I] 是您可以敲入第 I\xe2\x88\x92 个钉子的位置。
\n\n如果存在钉子 C[I]\n 使得 A[K] \xe2\x89\xa4 C[I] \xe2\x89\ ,我们说木板 (A[K], B[K]) 被钉住xa4 B[K]。
\n\n目标是找到必须使用的最少钉子数量,直到钉完所有木板。换句话说,您应该找到一个值 J,使得仅使用前 J 个钉子后即可钉好所有木板。更准确地说,对于每个木板 (A[K], B[K]) 使得 0 \xe2\x89\xa4 K\n < N,应该存在一个钉子 C[I] 使得 I < J 且 A[K ] \xe2\x89\xa4 C[I] \xe2\x89\xa4\n B[K]。
\n
解决方案链接:\n https://github.com/ZRonchy/Codility/blob/master/Lesson12/NailingPlanks.java
\n\nimport java.util.Arrays;\n\nclass Solution {\n …Run Code Online (Sandbox Code Playgroud) 这是 Spring Boot 项目。它使用SecurityContext。
它的大多数 Rest 控制器和服务取决于其登录用户的角色,以用于验证目的。所以在测试过程中,我需要一个用户登录。
请告知我针对 Spring boot 的单元测试代码示例,涉及登录用户进程。
@RunWith(PowerMockRunner.class)
@PrepareForTest({SecurityContextHolder.class,AuthenticationManager.class,UserRepository.class,UserCreationRequestRepository.class, PasswordEncoder.class,AuthorityRepository.class,CacheManager.class,POMasterCompanyRepository.class,BranchRepository.class})
public class BOAuthControllerTest {
@Autowired
private WebApplicationContext context;
@Mock
private AuthenticationManager authenticationManager;
@Mock
private UserRepository userRepository;
@Mock
private UserCreationRequestRepository userCreationRequestRepository;
@Mock
private PasswordEncoder passwordEncoder;
@Mock
private AuthorityRepository authorityRepository;
@Mock
private CacheManager cacheManager;
@Mock
private POMasterCompanyRepository poMasterCompanyRepository;
@Mock
private BranchRepository branchRepository;
private UserService userService;
private MockMvc mockMvc;
@Before
public void setup() {
userService = new UserService(userRepository, passwordEncoder, authorityRepository, cacheManager, userCreationRequestRepository,
poMasterCompanyRepository,branchRepository);
UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken("admin","admin");
Authentication …Run Code Online (Sandbox Code Playgroud)