كيف يمكنني التوقف عن Zend_Db_Table_Abstract fetchrow إرجاع البيانات القمامة عند تشغيل الاختبارات؟

StackOverflow https://stackoverflow.com/questions/1643380

  •  10-07-2019
  •  | 
  •  

سؤال

وأنا جديدة إلى حد ما زند وأواجه بعض الصعوبات مع إنشاء بلدي وحدة الاختبارات. لقد جردت من أسفل إلى فئة اختبار الحد الأدنى الذي لا يزال يعيد المشكلة على أمل أنه أمر سخيف أن أفعله:

class UserRegistrationsTest extends PHPUnit_Framework_TestCase 
{ 

ومحمية $ ديسيبل؛

وظيفة __construct العام ($ اسم = NULL)  {   الأم :: __ بناء (اسم $)؛

و$ هذا-> ديسيبل = Zend_Db :: مصنع ( 'Pdo_Mysql، مجموعة (    'المضيف' => '127.0.0.1'،    'المستخدم' => 'جذور'،    'كلمة السر' => 'XXXXXXXX،    "DBNAME '=>' testingdb"    ))؛

وZend_Db_Table_Abstract :: setDefaultAdapter ($ هذا-> ديسيبل)؛  }

وظيفة عمومية testName ()     {        $ = المستخدمين المستخدمين جديد ()؛        $ = $ تحديد users-> حدد () -> حيث ( 'regCode =؟'، 'deadbeef')؛        $ التوالي = $ users-> fetchRow ($ اختيار).  }

}

وهكذا هذا هو اختبار مبسط. لدي ديسيبل انشاء (وهو يتصل بشكل صحيح) الذي يحتوي على البيانات داخله. هناك سجل مع regCode لمجموعة 'deadbeef "وكما أن لديها حقول للبريد الإلكتروني وregDate والتابعة:

CREATE TABLE  testingdb.users (
         regCode varchar(16) NOT NULL,
         email varchar(150) NOT NULL,
         regDate datetime NOT NULL,
         affiliate int(10) unsigned DEFAULT NULL,
         PRIMARY KEY (regCode))   

ولدي فئة تسمى Users.php التي هي بسيطة كما يحصل:

class Users extends Zend_Db_Table_Abstract {

protected $_name = 'users';

}

ومشكلتي هي أنني يمكن أن تضاف إلى الغرامة قاعدة البيانات ولكن أية استفسارات بإرجاع نتائج غريبة. وfetchRow فوق يولد SQL الصحيح ولكن الخلاف عاد القمامة - تقوم بإرجاع الصف الذي يحتوي regCode، والبريد الإلكتروني، لا عمود regDate في كل شيء، ثم التابعة لها هناك ولكن يسمى collumn 'المستخدمين' بدلا من 'التابعة'

ولقد حاولت ذلك على الجداول الأخرى والعمل لا شيء - حتى بعض إرجاع اسم قاعدة البيانات كما رأس العمود، وكذلك اسم الجدول كعمود

.

وشيء واحد هو أن نلاحظ أنه إذا أنا لا تشغيل هذا في اختبار أنه يعمل بشكل جيد. نفس الرمز المحدد وديسيبل في التطبيق السليم العمل العظيم، ولكن تعمل بمثابة اختبار phpUnit وأنها تحصل على كل معطوب: - (

وأي نصيحة تقدير

وابتهاج، برين

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

المحلول 2

وكان هذا الخطأ زند القديم الذي هو ثابت الآن

نصائح أخرى

هل لديك أي جدول آخر أو حتى قاعدة بيانات أخرى مع جدول يحتوي على حقل regCode؟ هل يمكن أن يكون استخدام محول خاطئ، وهذا من شأنه أن يفسر لماذا الاستعلام الخاص بك لا يزال ينفذ. سيكون شرطا أساسيا لبيئة الاختبار يكون على الأقل أن يكون الهيكل نفسه بالضبط كما بيئة الإنتاج (الجداول + الحقول). إذا كانت تختلف، بعض الاستفسارات قد تنفذ بشكل جيد، والبعض الآخر قد لا.

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