나는 그렇게TDD를 사용하여 클래스의 공용 공개 API 부분을 제거하려면 어떻게합니까?
public class Foo : ICompletable
{
public IAmCompleted { get; set;} // from interface
private IFooCollab collab;
public Foo(IFooCollab collab)
{
this.collab = collab;
}
public YouCompleteMe()
{
this.collab.command();
this. IAmCompleted = true;
}
[TestFixture]
public class Tests
{
public void when_i_am_completed_then_completed_is_true()
{
var sut = new Foo(new mock<IFooColab>().object);
Assert.That(sut.IsCompleted, Is.True);
}
[Test]
public void when_i_am_completed_command_is_issued()
{
var collabMock = new mock<IFooCollab>();
...sut blah
collabMock.verify(x => x.command(), Times.Once)
}
}
리터를 사용하여 인터페이스를 제거하고 새로운 것을 같은 클래스 I이해야 할 것입니다 있습니다. 나는 그것을 시험에서 어떻게 이끌어 낼 수 있습니까? 테스트를 삭제하면 기능이 그대로 유지됩니다. 이드는 거의 반대 의견을 말하면서 굳은 코드를 깨뜨림으로써 테스트를 풀었다. grd .. 녹색 빨간색 삭제
전화 중의 버스에서 누군가 mr. – brumScouse
공중이 왜 공중인지 궁금합니다.) – ApolloSoftware
TDD에 대한 전문가가 아니지만 제거해야하는 인터페이스가 더 이상 존재하지 않는다는 리플렉션을 사용하여 테스트 할 수 있습니까? – Tim