簡體   English   中英

java.lang.AssertionError:預期狀態:<200> 但原為:<404> Spring 引導頁面未找到

[英]java.lang.AssertionError: Status expected:<200> but was:<404> Spring Boot Page Not found

結帳控制器

@Controller
@Profile("!test")
public class CheckoutController {

  private MonetaryAmount total = Money.of(0, EURO);
  private final UniqueInventory<UniqueInventoryItem> inventory;
  private final Katalog catalogue;

  private List<UniqueInventoryItem> history = new ArrayList();
  
  @Autowired
  public CheckoutController(UniqueInventory<UniqueInventoryItem> _inventory, Katalog _catalogue){
    inventory = _inventory;
    catalogue = _catalogue;
  }
  
  //!  Get Mappings

  //@GetMapping("/checkout")
  @RequestMapping("/checkout")
  @PreAuthorize("hasRole('WORKER')")
  public String checkout(Model model){
    model.addAttribute("total", this.total);
    model.addAttribute("history", this.history);
    model.addAttribute("controller", this);

    return "checkout"; // thymleafe located in proper path, visible when logged in 
  }
}

測試控制器

@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("test")
public class CheckoutControllerTests {

  @Autowired
  MockMvc mockMvc;

  @BeforeEach
  public void pre() {
    // code
  }

  @Test
  public void checkout() throws Exception {
    // TODO Error msg: status expected:<200> but was:<404>
        mockMvc.perform(get("/checkout").with(user("paul").roles("WORKER")))
      .andExpect(status().isOk());


  }
}

在上面寫着“/checkout”的地方,我可以放上所有其他被接受的可用路線,但不是這個,我不知道為什么。 同樣,一旦登錄運行該項目,我就可以看到它。

我嘗試使用 RequestMapping 而不是 GetMapping,但這也不起作用。 我用谷歌搜索沒有成功,在大多數情況下,人們實際上並沒有指向正確的 html 文件,但這里也不是這種情況。 我在這一點上迷失了,問我的朋友和同事沒有成功。

如果您有任何線索可能是什么,不正確的 mvc 設置,yadada,請告訴我!

您有沖突的個人資料。 您的 controller 使用@Profile("!test")注釋,而您的測試使用@ActiveProfiles("test")執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM