Я новичок в модуле тестирования модулей 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;
}
[ПРИЛОЖЕНИЕ B - код испытаний в соответствующем MessageClassTest]
[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());
}
... Это терпит неудачу на втором тесте. Установив значение val выше, чем обрезание (9999), ему должно быть присвоено значение (9999), а не 12345.
Как я уже сказал, я новичок в Visual Studio Unit Testing Framework; не возможно ли иметь более одного теста в TestMethod? Или мне нужно сделать что-то вроде call flush() или finish() или close() или reset() или что-то еще?
Я г-н Маг разработок программного обеспечения - первый у меня был код прилагается к неправильному собственности (MessageTypeCode вместо MessageTypeSubcode) и я DID исправить эту ошибку в моем неуместном коде. –