我現在有以下方法:哪些測試可以用於這個小方法?
public void SetNewRandomValue() {
double newValue = numberGenerator.GenerateDouble(
genesValuesInterval.MinimumValue,
genesValuesInterval.MaximumValue
);
this.value = newValue;
}
應該是什麼決定多少測試的準則(和測試),使這種方法?我目前已經完成了以下工作(僅在實施該方法後 - 即不是測試優先):
var interval = new Interval(-10, 10);
var numberGeneratorMock = new Mock<INumberGenerator>(MockBehavior.Strict);
var numberGenerator = numberGeneratorMock.Object;
double expectedValue = 5.0;
numberGeneratorMock.Setup(ng =>
ng.GenerateDouble(interval.MinimumValue, interval.MaximumValue))
.Returns(expectedValue);
var gene = new Gene(numberGenerator, 0, new Interval(-10, 10));
gene.SetNewRandomValue();
Assert.AreEqual<double>(expectedValue, gene.Value);
基本上只是測試一種情況。迴歸測試我會說,我想不出一種混淆代碼的方式,將它變成不正常運行的代碼,並且仍然通過測試,也就是說,我認爲該方法看起來不錯。
你對此有什麼看法?你將如何處理這個小方法?
感謝
我擔心發佈這個解決方案,因爲我絕不是單元測試的神。但是,如果您已經充分測試了您的號碼生成器,並從基因值中檢索了最小/最大值,那麼我會停下來。如果你知道這些工作,所有你會測試的是this.value被設置。 – 2010-12-03 20:04:01
「Gene」構造函數中的第二個參數是什麼? – 2010-12-03 20:58:23