Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Behaviorální a negativní testy, které rejstřík subjektů uvádí pro příkaz, jsou přesně ty, které uvádí jeho stránka příkazu, obojí načtené z první hlavičky pokrytí a negativního testu každého případu

Případ ve své hlavičce říká, které veřejné příkazy zkouší a které vyvrací:

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Hlavičky případů měly před indexem několik čtenářů: stránky příkazů generátoru webu, doktrínu pokrytí příkazů, kontrolu command-furnished a trasování dopadu případů užití, přičemž poslední dvě hledají příkaz kdekoli v kterémkoli řádku covers mezi hranicemi slov, a ne jako slovo prvního. Index čte první řádek slovo od slova, jako stránka. Případ drží obojí shodné, drží každý případ na jedné hlavičce od každého druhu a drží každý řádek covers na jmenování týchž veřejných příkazů v obou čteních, takže čtenáři se zatím nemohou rozejít; kontrolní řez je přesune na index. Dvě další shellová odvození se k testům dostávají deklaracemi, ne hlavičkami: stránky schopností dávají každé schopnosti tvrzení implementovaná v souboru jejího modulu a stránky doktrín jmenují první test každého pravidla. Tentýž případ drží každé z nich shodné s indexem.

Co to znamená

Případ ve své hlavičce říká, které veřejné příkazy procvičuje a které vyvrací: # majordomus-covers: <commands> a # majordomus-negative: <commands>. Tyto hlavičky čte několik programů a index subjektů je dalším. Toto tvrzení říká, že se index a stránky příkazů nikdy neshodnou v tom, které případy příkaz dokazují: behaviorální a negativní testy, které index jmenuje pro command:<name>, jsou přesně testy, které uvádí stránka toho příkazu.

Princip

Hlavičky mají několik čtenářů, každého ve vlastním souboru:

  • stránky příkazů, které scripts/generate-site-data zapisuje do site/data/generated/commands.json, čtou řádek first covers a první negativní řádek každého případu;
  • doktrína pokrytí příkazů, v lib/commands.sh, čte stejné první řádky a odmítne slovo, které není veřejným příkazem;
  • kontrola command-furnished v scripts/ci/command-furnished a trasa dopadu případů užití v lib/usecase.sh čtou jakýkoli řádek hlavičky.

Index předmětů čte první řádek slovo od slova, stejně jako stránka, a none nejmenuje nic. Čtenáři kteréhokoli řádku se od něj liší ve dvou ohledech. Čtou druhou hlavičku téhož druhu, kterou čtenáři prvního řádku ignorují. A shodují příkaz mezi hranicemi slov, ne jako celé slovo, takže slovo v hlavičce s příkazem uvnitř se jim počítá jako pokrytí tohoto příkazu, zatímco indexu ani stránce ne: slovo capability:commit.plan obsahuje plan. Případ proto drží každý případ tohoto repozitáře nejvýše u jednoho řádku covers a nejvýše jednoho negativního řádku a drží jeho řádek covers u toho, aby slovo od slova jmenoval přesně veřejné příkazy, které drží mezi hranicemi slov. Dokud kontrolní slice nepřesune tyto čtenáře na index, právě tato ochrana drží čtení shodná.

Dvě další shellová odvození se k testům dostanou přes deklarace místo hlaviček a stejný případ drží každé z nich proti indexu:

  • stránky schopností z scripts/lib/executable-site.jq dávají každé schopnosti tvrzení implementovaná v souboru, ve kterém je její modul složen, a vypisují testy těchto tvrzení; index dává capability:<id> přesně tato tvrzení jako členy a případ porovnává tvrzení i testy;
  • stránky doktrín, site/data/generated/doctrines.json, pojmenovávají první test bloku vynucování každého pravidla, který lib/doctrine.sh čte; případ drží každý takový test u routy nebo mechanismu rule:<id>.

Jak to vidět

bash test/run.sh 507_evidence_subjects_are_derived
jq '.commands[] | {name, tests}' site/data/generated/commands.json
jq '.subjects["command:plan"].routes' site/data/registry/evidence-subjects.json

Co nepokrývá

Doktrína pokrytí příkazů a kontroly ještě nejsou přesunuty na index; stále čtou hlavičky samy a stráž výše je drží v souladu. Tento přesun provede řez kontrol.

Tvrzení, která stránky schopností připojují k celému povrchu — program, jeho příkazový řádek, MCP, HTTP a měření výkonu — nemají předmět, protože žádný druh předmětu není povrch. Index je neodvozuje ani neporovnává.

Proč existuje

Stránka příkazu a stránka důkazů, které by pro jeden příkaz jmenovaly různé testy, by každá věrně promítala jiné čtení týchž hlaviček a čtenář by nepoznal, která je odpověď. Několik čtenářů jedné deklarace je způsob, jak se to stane; držet je shodné a jmenovat každého je způsob, jak to přestane, dokud nezůstane jediný čtenář.

Detail vykreslený z docs/claims/evidence-subject-commands-agree-with-the-command-pages.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Behaviorální a negativní testy, které rejstřík subjektů uvádí pro příkaz, jsou přesně ty, které uvádí jeho stránka příkazu, obojí načtené z první hlavičky pokrytí a negativního testu každého případu

    Žádná funkce ani odpovědnost v README ji nepojmenovává; tato stránka je místo, kde je uvedena.

  2. 2 · kanonické tvrzení

    evidence-subject-commands-agree-with-the-command-pagesdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/EVIDENCE.md

  3. 3 · implementace

    apps/majordomus-cli/src/evidence/subject.rs

  4. 4 · test a scénáře

    Test: test/cases/507_evidence_subjects_are_derived.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 507_evidence_subjects_are_derived

Související tvrzení stejná implementace

Prohledává názvy a popisy všech stránek, které tento web publikuje.