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)
}
}
卸下接口和任何使用它L A類是所有我需要做的。我應該如何從測試中推動這一點,甚至應該如此。如果我刪除測試,功能仍然存在。 Id幾乎說相反,打破prod代碼打破測試:) grd ..綠色紅色刪除
在公交車上有人請格式爲先生。 – brumScouse
我想知道爲什麼公衆是公開的;) – ApolloSoftware
我不是TDD的專家,但是你能否使用反射來測試接口不再存在,你應該刪除? – Tim