public class BarService {
public virtual string GetTheFoo() {
private readonly BarService barService;
protected FooService() { }
public FooService(BarService barService) {
this.barService = barService;
public string GetServiceId() {
return barService.GetTheFoo() + " foo";
public class FooServiceTest {
public void GetServiceId_ReturnsFooAppended() {
var barServiceMock = Substitute.For<BarService>();
var fooService = new FooService(barServiceMock);
var actual = fooService.GetServiceId();
actual.Should().BeEquivalentTo("bar foo");