2016-04-13 16 views
-1

Test işlevinde kullanmak için statik genel değişkeni taklit etmenin bir yolu var mı? Ya da bunun için herhangi bir geçici çözüm? Böyle bir durumun ortaya Örneğin AşağıdaCppUTest'te global değişkeni karşılaştırmanın bir yolu var mı?

:

static zsock_t *publish_logs = NULL; 

int btak_log_message_reactor(zloop_t *loop, zsock_t *reader, void *arg) { 
    struct btak_log_message *message; 
    size_t message_size; 

    if(zsock_recv(reader, "b", &message, &message_size) == 0) { 
     push_log_message(message); 
     if(publish_logs) 
      publish_log_message(message, publish_logs); 
     free(message); 
    } 

    return 0; 
} 
+0

CppUTest ile aşina değilim, ancak bir erişimci oluşturmak ve gerektiğinde değişken değişkeni döndürmek mümkün değil mi? – danielfranca

+0

Evet, bunu düşünüyorum. Ama bu şekilde gerçekten kullanışlı bir kod üretemiyorum, bu yüzden sadece küresel değişkenle dalga geçmenin mümkün olup olmadığını merak ediyorum. – Magnar

cevap

1

Biz genellikle bağlayıcı unutun. Bir arayüzle dalga geçmek için farklı bir nesne dosyası kullanabiliriz. Bu sahte nesne, globalinizin farklı bir tanımını içerecektir.

Ancak, mevcut birim test çerçeveleri yalnızca kod lebel üzerinde çalışır ... Bu nedenle, test yapısına sahte objeleri eklemek için çok hızlı bir şekilde kurumaya ihtiyaç duyulur.

İlgili konular