Как включить метод внутри - PullRequest
1 голос
/ 12 августа 2010

Я не хочу использовать [ExpectedException (ExceptionType = typeof (Exception), ExpectedMessage = "")] вместо этого, я хотел бы включить исключение в мой метод.Могу ли я сделать это?Любой пример, пожалуйста.

Спасибо

Ответы [ 3 ]

5 голосов
/ 12 августа 2010

Иногда я хочу проверить значение определенных свойств исключения, и в этом случае я иногда решаю не использовать атрибут ExpectedException.

Вместо этого я использую следующий подход (пример):

[Test]
public void MyTestMethod() {
   try {
      var obj = new MyClass();
      obj.Foo(-7); // Here I expect an exception to be thrown
      Assert.Fail(); // in case the exception has not been thrown
   }
   catch(MySpecialException ex) {
      // Exception was thrown, now I can assert things on it, e.g.
      Assert.AreEqual(-7, ex.IncorrectValue);
   }
}
1 голос
/ 12 августа 2010

Ваш вопрос не совсем имеет смысла.Как догадка, я полагаю, вы спрашиваете о том, чтобы позволить исключению быть пойманным в вашем модульном тесте, и затем вы можете выполнить утверждение, даже если исключение было поднято?

[TestMethod]
public void Test1()
{
  try{
    // You're code to test.
  }
  catch(Exception ex){
   Assert.AreEqual(1, 1); // Or whatever you want to actually assert.
  }
}

РЕДАКТИРОВАТЬ:

Или

[TestMethod]
public void Test1()
{
  try{
    // You're code to test.
    AreEqual(1, 1); // Or whatever you want to actually assert.
  }
  catch(Exception ex){
   Assert.Fail();
  }
}
0 голосов
/ 12 августа 2010

как то так:

[TestMethod]
public void FooTest()
{
  try
  {
    // run test
    Assert.Fail("Expected exception had not been thrown");
  }
  catch(Exception ex)
  {
    // assert exception or just leave blank
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...