Unit test is a testing focussed to unit/component in isolation. In procedural programming, a unit may be an function, procedure, struct and, etc. In object-oriented programming, the smallest unit is a method, attribute, etc. In the unit test we don’t care about external needs (databases, other services, etc) . So in unit test we need to mock the external needs.
Functional Testing do test collection of units/components that integrate by flow and cover external needs. The functional testing can integrate with another functional testing using the scenario.
Behavior Testing is an testing a function or collection of function that verified by all stakeholder (Developer, Testers, Stakeholder, Product Owner, or etc).