Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update docs about !v #361

Merged
merged 1 commit into from
Nov 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 8 additions & 10 deletions en/references/tested/dsl/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,13 +149,13 @@ For example, you cannot check that an assertion error or exception happened.

Specifies the expected return value.

Depending on the value, this attribute is interpreted as:
By default, this attribute is interpreted as a YAML value.
For example, a YAML string will result in a literal string value.

- If an untagged string, the string uses the same Python syntax as for [expressions and statements](#expressions-and-statements).
- If it is an untagged object, it is seen as the advanced output for an oracle.
- If it is another value, it is interpreted as a YAML value.
If you need more advanced return values, there are two options:

With the tags `!v` or `!values`, you can mark strings or objects as also being YAML values.
- string tagged as `!expression` use the same Python syntax as for [expressions and statements](#expressions-and-statements)
- objects tagged as `!oracle` denote the return value oracle (see below)

#### `exit_code`

Expand Down Expand Up @@ -321,15 +321,13 @@ This name is programming language dependent:

## Supported tags

TESTed supports the following standard types:
TESTed supports the following standard YAML types:

- `!!set` to denote a set.

TESTed also supports:

- `!v` or `!value` to mark a return value as a YAML value.

Finally, all [TESTed types](/en/references/tested/types) can also be used as tags.
For example `!int64` or `!double`.
Note that custom types use one exclamation mark, while standard types use two.


## YAML cheat sheet
Expand Down
43 changes: 23 additions & 20 deletions nl/guides/exercises/testsuites/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,18 @@ Een voorbeeld van een testplan met alle niveaus is:
contexts:
- testcases:
- expression: 'echo("hello")'
return: !v "hello"
return: "hello"
- testcases:
- expression: 'echo("world")'
return: !v "world"
return: "world"
- tab: "Tabblad 2"
contexts:
- testcases:
- expression: 'echo("4")'
return: !v "4"
return: "4"
- testcases:
- expression: 'echo("2")'
return: !v "2"
return: "2"
```

In dit testplan zijn twee analoge tabbladen.
Expand All @@ -64,15 +64,15 @@ Daarom is het mogelijk om de contexten weg te laten:
- tab: "Tabblad 1"
testcases:
- expression: 'echo("hello")'
return: !v "hello"
return: "hello"
- expression: 'echo("world")'
return: !v "world"
return: "world"
- tab: "Tabblad 2"
testcases:
- expression: 'echo("4")'
return: !v "4"
return: "4"
- expression: 'echo("2")'
return: !v "2"
return: "2"
```

## Formaat
Expand All @@ -96,12 +96,15 @@ Een testgeval met een aantal functieoproepen is:
return: 1
```

Voor returnwaarden zijn er twee opties:
Een returnwaarde wordt geïnterpreteerd als een YAML-waarde.
Een string is een string, een getal wordt een getal, enzovoort.

Als je geavanceerde returnwaarden nodig hebt, zijn er twee opties:

1. Als je een string als returnwaarde opgeeft, gaan we ervan uit dat die string ook de Python-syntaxis gebruikt.
2. Als je iets anders dan een string (of object) opgeeft, interpreteren we het als een YAML-waarde. Met de tag `!v` of `!value` kan je ook een string laten interpreteren als een YAML-waarde.
- Een string met de tag `!expression` betekent dat de string de Python-syntaxis kan gebruiken.
- Een object met de tag `!oracle` wordt als een [eigen orakel](#eigen-checkfunctie-eigen-orakelfunctie) gezien.

Een voorbeeld van een returnwaarde (hier een verzameling getallen) is:
Een voorbeeld van een geavanceerde returnwaarde (hier een verzameling getallen) is:

```yaml
- expression: 'unique(1, 1, 2, 3)'
Expand All @@ -119,9 +122,9 @@ Om een string als returnwaarde te hebben zijn er dus twee mogelijkheden:

```yaml
- expression: 'echo("hello")'
return: !v "hallo" # Een gewone string met als tag !v
return: "hallo" # Een gewone string
- expression: 'echo("hello")'
return: "'hallo'" # Een string in Python-syntaxis
return: !expression "'hallo'" # Een string in Python-syntaxis
```


Expand Down Expand Up @@ -180,7 +183,7 @@ Als we dat in een testplan willen schrijven, wordt dat:
- tab: "Vandaag"
testcases:
- expression: 'vandaag()'
return: !v "??????" # Wat moet er hier komen?
return: "??????" # Wat moet er hier komen?
```

De oplossing daarvoor is een eigen orakelfunctie schrijven.
Expand All @@ -192,7 +195,7 @@ In het testplan wordt dit dan:
- tab: "Vandaag"
testcases:
- expression: 'vandaag()'
return:
return: !oracle
value: "'27-08-2023'"
oracle: "custom_check"
language: "python"
Expand Down Expand Up @@ -290,7 +293,7 @@ Het is niet verplicht om argumenten te gebruiken:
testcases:
- stdin: "Jan"
expression: "greet()"
return: !v "Hello, Jan."
return: "Hello, Jan."
```

## Taalspecifieke expressies en statements
Expand Down Expand Up @@ -321,7 +324,7 @@ In onderstaande voorbeeld wordt een functie opgeroepen met als argument de som v
kotlin: "toString(1+1)"
python: "submission.to_string(1+1)"
csharp: "Submission.toString(1+1)"
return: !v "2"
return: "2"
```

::: info Merk op
Expand All @@ -339,7 +342,7 @@ Als je slechts één programmeertaal wilt ondersteunen, kan je de taal van de ex
language: "java"
testcases:
- expression: "Submission.toString(1+1)"
return: !v "2"
return: "2"
```

## Bestanden koppelen aan expressies
Expand All @@ -357,7 +360,7 @@ In het testplan geef je vervolgens het attribuut `files` mee:
- tab: "Voorbeeld met bestanden"
testcases:
- expression: "lees_het_bestand('bestand.txt')"
return: !v "Dit is de inhoud van het bestand"
return: "Dit is de inhoud van het bestand"
files:
- name: "bestand.txt"
url: "media/bestand.txt"
Expand Down
18 changes: 8 additions & 10 deletions nl/references/tested/dsl/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,13 +153,13 @@ Het is bijvoorbeeld niet mogelijk om te controleren of een _assertion error_ geb

Specifieert de verwachte returnwaarde.

Afhankelijk van de waarde wordt dit attribuut als volgt geïnterpreteerd:
Standaard wordt de returnwaarde beschouwd als een YAML-waarde.
Een string in het testplan zal dus ook een string worden in de testcode.

- Als het een _untagged_ string is, gebruikt het dezelfde Python-syntaxis te gebruiken als voor de [expressies en statements](#expressies-en-statements).
- Als het een _untagged_ object is, wordt het gezien als de geavanceerde uitvoer voor een orakel.
- Als het een andere waarde is, wordt het geïnterpreteerd als een YAML-waarde.
Voor geavanceerde returnwaarden zijn er twee opties:

Met de tags `!v` of `!value` kunnen strings ook gezien worden als YAML-waarden.
- Een string met de tag `!expression` gebruikt het dezelfde Python-syntaxis te gebruiken als voor de [expressies en statements](#expressies-en-statements).
- Een object met de tag `!oracle` is het object voor een eigen orakel.

#### `exit_code`

Expand Down Expand Up @@ -328,15 +328,13 @@ Deze naam is programeertaalafhankelijk:

## Ondersteunde tags

TESTed ondersteunt de volgende standaardtypes:
TESTed ondersteunt de volgende standaardtypes van YAML:

- `!!set` om een verzameling te definiëren.

Daarnaast ondersteunt TESTed ook:

- `!v` of `!value` om bij een returnwaarde duidelijk te maken dat het om een YAML-waarde gaat, geen Python-syntaxis.

Tot slot kan ook de naam van elk [TESTed-type](/nl/references/tested/types) gebruikt worden als tag.
Voorbeelden zijn `!int64` of `!double`.
Merk op dat eigen types één uitroepteken gebruiken, terwijl standaardtypes er twee gebruiken.


## Spiekbriefje voor YAML
Expand Down