1
我是新來的Visual Studio單元測試框架。我已經在XUnit嘗試過一點,但是(DUnit是具體的)。如何在一個方法中執行多個測試?
我不知道爲什麼以下測試失敗。根據我的C#代碼(展覽A),我認爲我的測試(展覽B)會以諺語般的飛行色彩通過。
[附件A - 相關代碼]
public class MessageClass
{
private int _messageTypeCode = 0;
private int _messageTypeSubcode;
private int _messageSequenceNumber;
private string _messageText;
public MessageClass()
{
this._messageTypeCode = 0;
this._messageTypeSubcode = 0;
this._messageSequenceNumber = 0;
this._messageText = string.Empty;
}
public void SetMessageTypeSubcode(int AMessageTypeSubcode)
{
int iMsgTypeSubCode = AMessageTypeSubcode;
if (iMsgTypeSubCode > 9999)
{
iMsgTypeSubCode = 9999;
}
else if (iMsgTypeSubCode < 0)
{
iMsgTypeSubCode = 42;
}
_messageTypeSubcode = AMessageTypeSubcode;
}
public int MessageTypeSubcode()
{
return _messageTypeSubcode;
}
-
[TestMethod()]
public void SetMessageTypeSubcodeTest()
{
int AMessageTypeSubcode;
// Should I put this class instantiation in MyTestInitialize?
MessageClass target = new MessageClass();
// Test 1
AMessageTypeSubcode = 0;
target.SetMessageTypeSubcode(AMessageTypeSubcode);
Assert.AreEqual(AMessageTypeSubcode, target.MessageTypeSubcode());
// Test 2 - 10000 is too much
AMessageTypeSubcode = 12345;
target.SetMessageTypeSubcode(AMessageTypeSubcode);
Assert.AreEqual(9999, target.MessageTypeSubcode());
// Test 3 - val must be positive
AMessageTypeSubcode = -77;
target.SetMessageTypeSubcode(AMessageTypeSubcode);
Assert.AreEqual(42, target.MessageTypeSubcode());
}
[附件B在相應的測試MessageClassTest代碼] ...它是失敗的第二次檢驗。設置val高於截止點(9999)時,應該指定(9999)而不是12345.
正如我所說的,我是Visual Studio單元測試框架的新成員;在TestMethod中不可能有多個測試嗎?或者我需要做些什麼,如調用flush()或finish()或close()或reset()或其他?
我是軟件開發的脫線先生 - 首先我必須連接到錯誤的屬性的代碼(MessageTypeCode而不是MessageTypeSubcode)和我DID在我錯位的代碼中修復了這個錯誤。 – 2012-02-03 20:18:10