سؤال

وكيف وحدة اختبار قانون بلدي الذي لديه LTS Datacontext. أحصل على خطأ أثناء الاختبار، ولدي الكثير من Datacontexts وإضافة سلسلة الاتصال يدويا هو الألم، أي اقتراحات.

هل كانت مفيدة؟

المحلول

حسنا، والطريقة أفعل ذلك كما يلي:

وبلدي طبقة البيانات لديها واجهة، مثل يلي:

public class MyDataLayer : iMyDataLayer
{
  public string GetMyData(parameters)
  {
    return myQueryValue;
  }

}

public interface iMyDataLayer
{
  public string GetMyData(parameters);
}

والآن، في منشئ بلدي لبلدي رمز قاعدة الرئيسية (منطق الأعمال) سوف يكون لي معلمة لتمرير في واجهة لطبقة البيانات:

private iMyDataLayer DataLayer;

public class MyBusinessLogic(iMyDataLayer dataLayer)
{
   DataLayer = dayaLayer
}

public string GetMyData(parameters)
{
  return DataLayer.GetMyData(parameters)
}

مع هذا، لا أستطيع الآن إنشاء "وهمية" خدمة البيانات في مشروع TDD بلدي:

public class FakeDataLayer : iMyDataLayer
{
      public string GetMyData(parameters)
      {
        return "Some Default Value or Object";
      }

}

وحتى الآن عندما تشغيل اختبار بلدي، وأنا يمكن أن تمر الآن في بلدي وهمية كائن طبقة البيانات إلى منطق عملي، من هنا فإنه سيتم استدعاء المنطق وهمية ونعود نتيجة الافتراضية.

والآن، منحت فلن يكون العمل مع بيانات حقيقية هنا. ومع ذلك، إذا كنت الإعداد كائنات وهمية مع بيانات صالحة / غير صالحة الحقيقية، يمكنك اختبار المنطق عملك بهذه الطريقة دون الحاجة إلى الاتصال بقاعدة بيانات.

ويساعد هذا الأمل. اسمحوا لي أن أعرف إذا كنت تحتاج إلى توضيح على أي شيء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top