Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Вопрос к тестировщикам

07.08.19 18:46
Re: Вопрос к тестировщикам
 
Программист коренной житель
в ответ Murr 07.08.19 18:07
Ну вопрос об том кого мудрый менеджер поставит определять причину Я уже задал. А вот ответа пока не слышал...

Ответ в том, что причина никого не интересует. Тестировщик ли Петя вбил статический ИП или админ Коля перепутал маску подсети - разработчика софта это не интересует. Разработчика интересует может быть такая ситуация или нет.


Нет проблем - пиши враппер второго ИПшника в сети.

Ты сам понял, что спросил?


Ну а враппер будет прост как мычание:


public interface IOracleConnection, IDispocable
{
  string ConnectionString { get; set; }
  void Open ();
}

public class OracleConnectionWrapper : IOracleConnection
{
   private OracleConnection oracleConn = new OracleConnection();

   public string ConnectionString
   {
     get { return oracleConn.ConnectionString; }
     set { oracleConn.ConnectionString = value; }
   }
   public void Open ()
   {
     oracleConn.Open ();
   }

   public void Dispose ()
   {
     oracleConn.Dispose ();
   }
}

public class SomeCoolClass ()
{
   // Инекцию можно сделать так, либо через конструктор, либо можно через конструктор передать фабрику... 
   protected virtual IOracleConnection OracleConnection { get { return new OracleConnectionWrapper (); } }

   public void DoSomething ()
   {
     using (IOracleConnection oraCN = OracleConnection)
     {
       try
       {
         oraCN.ConnectionString = ConnectionString;
         oraCN.Open();
       }
       catch(OracleException oex)
       {
         тут будет все что тебе надо - раз - правильно, другой - ошибка...
       }
     }
  }
}

Таким образом при вызове Open () или сеттера ConnectionString я в тесте смогу сгенерировать любое исключение и таким образом проверить стабильность кода.


 

Перейти на