Assuming you are talking about mocking SiteSettingsProvider - then you should code against
ISiteSettingsProvider abstraction over concrete impl.
MvcContext -> should use IMvcContext abstraction instead.
That way your code would operate with logical contracts (instead of concrete impl) and become unit-testable.
Here is an example with AutoFixture attribute to power abstract members generation (with NSubsitute)
The test may look like:
public void TestName(Item item, Item settingsItem, IMvcContext context, ISiteSettingsProvider settings)
settingsProvider.GetSetting(sitecoreItem, "Settings", "General")
var sut = ...