Answer-ID
  • Întrebări
  • Tag-uri
  • Categorii
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 stung
stung

Care sunt unele populare convențiile de denumire pentru Teste Unitare?

General

  • Urmați aceleași standarde pentru toate testele.
  • Să fie clar despre ceea ce fiecare test stat.
  • Să fie specifice cu privire la comportamentul așteptat.

Exemple

  1. MethodName_StateUnderTest_Expectedbehavior

Public void Sum_NegativeNumberAs2ndParam_ExceptionThrown () 

Public void Sum_simpleValues_Calculated ()

Sursa: Denumire de standarde pentru Teste Unitare

  1. Separarea Fiecărui Cuvânt De Subliniere

Public void Sum_Negative_Number_As_2nd_Param_Exception_Thrown () 

Public void Sum_Simple_Values_Calculated ()

Alte

  • End metodă nume cu Test
  • Metoda Start nume cu numele clasei
203 2008-09-18T19:59:56+00:00 7
Programare
unit-testing
naming-conventions
Comentarii la întrebare (1)
Soluția
Rob Cooper
Rob Cooper
18 septembrie 2008 в 8:32
2008-09-18T20:32:48+00:00
Mai mult
Sursă
Editează
#8480185

Eu sunt destul de mult cu voi pe acest om. Convențiile de denumire trebuie utilizate sunt:

  • Clare despre ceea ce fiecare test stat.
  • Specifice cu privire la comportamentul asteptat.

De ce mai ai nevoie de un nume de test?

Contrar a Ray's a răspunde am don't cred că Test prefix este necesar. L's cod de încercare, știm asta. Dacă aveți nevoie pentru a face acest lucru pentru a identifica codul, atunci ai probleme mai mari, codul de testare nu ar trebui să fie amestecat cu codul de producție.

În ceea ce privește lungimea și utilizarea de subliniere, sa testul cod, cine naiba îi pasă? Numai tu și echipa ta veți vedea că, atât timp cât acesta este ușor de citit, și clar despre ce test este de a face, continua! :)

Asta a spus, eu sunt încă destul de nou pentru testarea și blogging aventurile mele cu ea :)

92
0
Comentarii (4)
 Robs
Robs
21 ianuarie 2012 в 6:35
2012-01-21T18:35:16+00:00
Mai mult
Sursă
Editează
#8480189

Acest lucru este, de asemenea, merită să o citiți: Structurarea Testelor Unitare

structura are o clasa de test pentru fiecare clasă testată. Asta nu e atât de neobișnuit. Dar ceea ce era neobișnuit pentru mine a fost că el a avut o clasa imbricate pentru fiecare metodă testată.

de exemplu


public class TitleizerFacts
{
    public class TheTitleizerMethod
    {
        [Fact]
        public void NullName_ReturnsDefaultTitle()
        {
            // Test code
        }

        [Fact]
        public void Name_AppendsTitle()
        {
            // Test code
        }
    }

    public class TheKnightifyMethod
    {
        [Fact]
        public void NullName_ReturnsDefaultTitle()
        {
            // Test code
        }

        [Fact]
        public void MaleNames_AppendsSir()
        {
            // Test code
        }

        [Fact]
        public void FemaleNames_AppendsDame()
        {
            // Test code
        }
    }
}

Și aici este de ce:

ei Bine, pentru un singur lucru, e un mod frumos de a păstra teste organizate. Toate teste (sau fapte) pentru o metodă sunt grupate împreună. De exemplu, dacă utilizați CTRL+M CTRL+O comandă rapidă la prăbușirea metoda organisme, puteți scanați cu ușurință de teste și citiți-le ca pe un spec pentru cod.

Îmi place, de asemenea, această abordare:

MethodName_StateUnderTest_Expectedbehavior

Deci poate regla la:

StateUnderTest_ExpectedBehavior

Pentru fiecare test va fi deja în clase imbricate

35
0
Comentarii (2)
 CodingWithSpike
CodingWithSpike
15 februarie 2012 в 6:20
2012-02-15T18:20:19+00:00
Mai mult
Sursă
Editează
#8480190

Am tendința de a folosi convenția de MethodName_DoesWhat_WhenTheseConditions` deci, de exemplu:

Cu toate acestea, ceea ce fac vedea o mulțime este de a face testul nume urmați unitate de testare structura de

  • Aranja
  • Act
  • Afirma

Care, de asemenea, urmează BDD / Castravecior sintaxa:

  • Având în vedere
  • Când
  • Atunci

care ar fi numele testului, în modul de: UnderTheseTestConditions_WhenIDothis_thenigetthis

deci, pentru exemplul tau:

Cu toate acestea eu de mult prefera pune numele metodei fiind testat în primul rând, pentru că atunci testele pot fi aranjate în ordine alfabetică, sau apar sortate în ordine alfabetică în statele casetă derulantă în VisStudio, și toate testele pentru 1 metode sunt grupate împreună.


În orice caz, îmi place separarea majore secțiuni de numele de test cu subliniere, spre deosebire de orice cuvânt, pentru că eu cred că face mai ușor de citit și înțeles de testare de peste.

Cu alte cuvinte, îmi place: Sum_ThrowsException_WhenNegativenumberas1stparam mai mult Sum_Throws_Exception_When_Negative_number_as_1st_param.

26
0
Comentarii (0)
 Jehof
Jehof
18 august 2009 в 6:40
2009-08-18T06:40:59+00:00
Mai mult
Sursă
Editează
#8480186

Am numele meu de metode de testare ca și alte metode, folosind "PascalCasing", fără nici o subliniere sau separatoare. Plec de la postfix Test pentru metoda, pentru că se adaugă nici o valoare. Care metoda este o metoda de test este indicat de atribut TestMethod.

public void CanCountAllItems() {
  // Test the total count of items in collection.
}

Datorită faptului că fiecare clasa de Test ar trebui să testa doar o altă clasă plec de numele clasei din numele metodei. Numele clasei care conține metodele de testare este numit ca clasa de testare în conformitate cu postfix "Teste".

public class SuperCollectionTests(){
    // Any test methods that test the class SuperCollection
}

Pentru metode de încercare pentru excepții sau acțiuni care nu sunt posibile, am prefix metoda de testare cu cuvântul nu se Poate.

[ExpectedException(typeOf(ArgumentException))]
public void CannotAddSameObjectAgain() {
  // Cannot add the same object again to the collection.
}

Mi denumire convension se baza pe articolul "TDD Sfaturi: Test Convențiile de Denumire & Ghid" de Bryan Gătească. Am gasit acest articol foarte util.

22
0
Comentarii (2)
Frank Szczerba
Frank Szczerba
18 septembrie 2008 в 8:04
2008-09-18T20:04:52+00:00
Mai mult
Sursă
Editează
#8480184

Primul set de nume este mai ușor de citit pentru mine, deoarece CamelCasing separă cuvintele și underbars părți separate schema de numire.

Am, de asemenea, tendința de a include "de Testare" undeva, fie în funcție de numele sau inchiderea de nume sau de clasă.

5
0
Comentarii (3)
 Munger
Munger
18 septembrie 2008 в 8:04
2008-09-18T20:04:47+00:00
Mai mult
Sursă
Editează
#8480183

Atâta timp cât vă urmați o singură practică, aceasta nu't contează cu adevărat. În general, îmi scrie o singură unitate de testare pentru o metodă care acoperă toate variantele pentru o metodă (am metode simple;) și apoi scrie mai complexe seturi de teste pentru metode care necesită aceasta. Mi denumire structură este, prin urmare, de obicei, test (o rămășiță din JUnit 3).

-3
0
Comentarii (0)
 user566399
user566399
7 ianuarie 2011 в 3:56
2011-01-07T03:56:20+00:00
Mai mult
Sursă
Editează
#8480188

Eu folosesc un 'T' prefix pentru test spații de nume, clase și metode.

Încerc să fiu elegant și de a crea foldere care reproduce spații de nume, apoi a crea un teste dosar sau proiect separat pentru teste și reproduce structura de producție pentru testele de bază:

   Objects
      AnObj
         AProp
   Misc
      Functions
         AFunc
   Tests
      TObjects
         TAnObj
            TAnObjsAreEqualUnderCondition
      TMisc
         TFunctions
            TFuncBehavesUnderCondition

Eu pot vedea cu ușurință că ceva este un test, nu stiu exact ce cod original se referă la, (dacă se poate't lucra la asta, atunci testul este prea complicat, oricum).

Se pare ca interfețele convenție de denumire, (adica, nu't obține confuz cu lucruri incepand cu 'I', nici cu 'T').

L's ușor pentru a compila doar cu sau fără teste.

L's teoria e bună oricum, și funcționează destul de bine pentru proiecte mici.

-8
0
Comentarii (3)
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
ID
KO
RO
RU
© Answer-ID 2021
Sursă
https://stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire