Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

Mock-Framework für JUnit Tests

<< < (6/7) > >>

MadMetzger:
Naja, erstmal einen Schritt nach dem anderen. Aber die Parsergeschichte interessiert mich halt, von daher hatte ich mein Interesse geäußert. Der zunächst aufwändigste Part wird dann wohl die Grammatik für den Parser sein, denke ich mal. Aber danach muss man ja auch die @Funktionen implementieren, damit man auch interpretieren kann. Ich finde das sehr interessant, obwohl ich beruflich nichts mehr mit Notes zu tun habe. Das daraus gewonnene Wissen kann man ja garantiert an anderer Stelle weiterverwenden.

flaite:
Das zugegeben zur Zeit etwas schleppend weiterentwickelte Mockframework kann jetzt xml-Konfigurationsdateien zur Deklarierung der "Umgebung" einlesen.

Unter Umgebung verstehe ich so Sachen wie Datenbanken, Ansichten, Ordner, Dokumente.
Java-Agenten, LS2J Zeugs oder externe Javaprogramme, die mit dem Framework entwickelt und testbar gemacht werden sollen erwarten ja so etwas wie eine Umgebung.

Hier eine Beispiel-Konfigurationsdatei:

--- Code: ---<?xml version="1.0" encoding="UTF-8"?>
<declaration>
<database title="music" path="music.nsf">
<view name="byYear" formula="form={music}">
<column title="year" formula="year" sort_policy="ASCENDING"
type="int" response="false" />
<column title="type" formula="type" />
<column title="artist" formula="artist" />
<column title="title" formula="title" />
</view>
<view name="all" formula="@all">
<column title="form" formula="form" sort_policy="ASCENDING" />
</view>
<folder name="wantHear" formula="form={music}">
<column title="artist" formula="artist"
sort_policy="ASCENDING" />
<column title="title" formula="title"
sort_policy="Ascending" />
<column title="year" formula="year" />
<column title="type" formula="type" />
</folder>

<profile form="profile">
<item name="aProfField">
wert
</item>
</profile>

<document form="music">
<item name="year" type="NUMBERS">1835</item>
<item name="artist">Robert Schumann</item>
<item name="type" sep=",">Clasic, Romantic</item>
<item name="title">Von fremden Ländern und Menschen</item>
</document>

<document form="music">
<item name="year" type="NUMBERS">1977</item>
<item name="artist">Joy Division</item>
<item name="type" sep=",">Pop</item>
<item name="title">Control</item>
</document>





</database>

</declaration>

--- Ende Code ---

Damit werden dann in der Umgebung die im xml deklarierten Datenbank(en), die Ansichten, die Profildokumente, die Ordner und die Dokumente angelegt.

Hier ist Testcode, der die obige xml einliest:

--- Code: ---
MockFactory fac = MockFactory.getInstanceXmlDecl("mockfactory.xml");
Session s = fac.getSession();
Database db = s.getDatabase("", "music.nsf");
View vw = db.getView("byYear");
;
System.out.println(vw.prettyPrint());


--- Ende Code ---

Hier ist das Ergebnis vom System.out des Testcodes:

--- Code: ---Datenbank=music(music.nsf)
Ansicht=byYear, Selektionsformel=form={music}

year|type            |artist         |title                           |
____|________________|_______________|________________________________|
1835|Clasic, Romantic|Robert Schumann|Von fremden Ländern und Menschen|
____|________________|_______________|________________________________|
1977|Pop             |Joy Division   |Control                         |
____|________________|_______________|________________________________|


--- Ende Code ---

Sobald sich das xml stabilisiert, werd ich dafür ein xml-Schema schreiben. So kann leichter validiert werden, ob die Eingaben des Benutzers im xml ok sind. 
Xml ist natürlich ein ziemlich geschwätziges Format, aber man kann da prima mit copy und paste arbeiten und es ist eben ziemlich selbsterklärend.
Ich denke auch darüber nach DXL einlesen zu können, das kommt aber später.

m3:
Falls noch nicht bekannt:


--- Zitat ---Using easymock for disconnected Domino Java testing

For his testing he would rather not connect to the Domino server all the time, but instead mock up objects to make sure that his other code works correctly. Enter EasyMock, which is a JAR file which you can include in any project that basically pretends to be whatever object you want it to be.
--- Ende Zitat ---

http://www.11tmr.com/11tmr.nsf/d6plinks/MWHE-7BKDJC

flaite:
Das ist natürlich auch eine Lösung.
Je mehr Logik auf Domino selbst zugreift, desto löchriger und anstrengender wird dieser Ansatz mit JMock.
Werd noch diese Woche hochladen.
Bin noch ziemlich an kämpfen mit einer Ajax Anwendung, die budgetonisch aus dem Ruder gelaufen ist und einem Java-Kurs, den ich hier intern gebe.

StephanKoo:
Moin,

kann man das Ergebnis nutzen? Der Thread hörte irgendwie so plötzlich auf.

Danke
   Stephan Koops

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln