Like in production code, the way you are using and naming variables in unit tests is important. A magic value is a value that you use in your test without providing any context about it.
This may confuse the other developers as they will wonder why a certain value was used, rather than focusing on the test itself.
When writing unit tests, you should try to express intent as much as possible. Instead of using magic strings, a good approach is to use constants.
This unit test looks simple, but someone who has not good understanding the production code cannot easily know why the values 0.5 and 10.00 were used.
double fee = ShippingCalculator.calculateShippingFee(0.5);
To fix this, you can use constants and name them in a convenient manner. Don't be afraid of using long constant names to express the intent of your code.
final double LESS_THAN_1KG_WEIGHT = 0.5;
final double BASE_FEE = 0.5;
double fee = ShippingCalculator.calculateShippingFee(WEIGHT);