diff --git a/components/breadcrumb/__tests__/Breadcrumb.test.js b/components/breadcrumb/__tests__/Breadcrumb.test.js
new file mode 100644
index 000000000..facd2489e
--- /dev/null
+++ b/components/breadcrumb/__tests__/Breadcrumb.test.js
@@ -0,0 +1,70 @@
+import { mount } from '@vue/test-utils'
+import Breadcrumb from '../index'
+
+describe('Breadcrumb', () => {
+ const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {})
+
+ afterEach(() => {
+ errorSpy.mockReset()
+ })
+
+ afterAll(() => {
+ errorSpy.mockRestore()
+ })
+
+ // // https://github.com/airbnb/enzyme/issues/875
+ it('warns on non-Breadcrumb.Item children', () => {
+ mount(
+ {
+ render () {
+ return (
+
+ foo
+
+ )
+ },
+ }
+ )
+ expect(errorSpy.mock.calls).toHaveLength(1)
+ expect(errorSpy.mock.calls[0][0]).toMatch(
+ 'Breadcrumb only accepts Breadcrumb.Item as it\'s children'
+ )
+ })
+
+ // https:// github.com/ant-design/ant-design/issues/5015
+ it('should allow Breadcrumb.Item is null or undefined', () => {
+ const wrapper = mount(
+ {
+ render () {
+ return (
+
+ {null}
+ Home
+ {undefined}
+
+ )
+ },
+ }
+ )
+ expect(errorSpy).not.toHaveBeenCalled()
+ expect(wrapper.html()).toMatchSnapshot()
+ })
+
+ // https://github.com/ant-design/ant-design/issues/5542
+ it('should not display Breadcrumb Item when its children is falsy', () => {
+ const wrapper = mount(
+ {
+ render () {
+ return (
+
+
+ xxx
+ yyy
+
+ )
+ },
+ }
+ )
+ expect(wrapper.html()).toMatchSnapshot()
+ })
+})
diff --git a/components/breadcrumb/__tests__/__snapshots__/Breadcrumb.test.js.snap b/components/breadcrumb/__tests__/__snapshots__/Breadcrumb.test.js.snap
new file mode 100644
index 000000000..194a88e5e
--- /dev/null
+++ b/components/breadcrumb/__tests__/__snapshots__/Breadcrumb.test.js.snap
@@ -0,0 +1,12 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Breadcrumb should allow Breadcrumb.Item is null or undefined 1`] = `
+
Home/
+
+`;
+
+exports[`Breadcrumb should not display Breadcrumb Item when its children is falsy 1`] = `
+
+ xxx/yyy/
+
+`;