|
View:
New views
10 Messages
—
Rating Filter:
Alert me
|
|
|
Announce: 20061230 release of FitLibrary in Java for FitNesseThat's available at https://sourceforge.net/projects/fitlibrary/
This release includes some new new capability and a fix. Changes include the following. See the UserGuide included in the download zip file for further details. * FitLibrary now enables debugging when running storytests. * CompareFileFixture now handles absolute file names as well as relative file names. * An empty tables cell may be interpreted as follows, depending on what value the cell is expected to hold: * An empty list, set, array, map * A null value for an object, including Integer, etc * FitLibrary accesses private getter/setters for properties. This allows for setter injection without generally exposing properties. * FitLibrary accesses private nullary constructors. This allows for object creation without generally exposing the constructor. * Use of HR to separate phases of DomainFixture * The method that is called for a calculation rules may return an object that's a subtype of the declared return type of the method. The actual type of the result is used to check it against the expected value * Fixed problem with a startUp() method being called more than once for suite fixtures, etc. * Lots of storytests have been added to check that exceptions are caught correctly and nulls are handled correctly * Experimental feature: If it exists, the method startCreatingObject() of a domain adapter or sut is called when DomainFixture (and other fixtures) automatically create an object; the object is passed as an argument. This allows for specialised setup of the object before it has property values automatically injected into it. The corresponding method endCreatingObject() is called at the end of automatic injection. * Experimental feature: A parse delegate may be specified for any type, and so will be override any provided Parser for that type for the duration of the storytest concerned. * Experimental feature: A revised mechanism for supporting polymorhism is included. I will later add support for tailoring the way that the type is specified in the table. The documentation is still to be completed. * Only relevant to those who write their own fixtures: The interpretation cycle passes extra type information; this is used in FitLibrary2 to track the generic types of objects (which is missing at runtime, due to ''erasure'' in Java). The way that Parsers are selected has been changed considerably. Some class names have been changed, and the package structure has changed in minor ways. FitLibraryServer has changed considerably. Cheers, Rick |
|
|
RE: Announce: 20061230 release of FitLibrary in Java for FitNesseDo you know when the .NET version of this library will be released?
-----Original Message----- From: fitnesse@... [mailto:fitnesse@...] On Behalf Of Rick Mugridge Sent: Friday, December 29, 2006 6:14 PM To: fitnesse@... Subject: [fitnesse] Announce: 20061230 release of FitLibrary in Java for FitNesse That's available at https://sourceforge.net/projects/fitlibrary/ |
|
|
Re: Announce: 20061230 release of FitLibrary in Java for FitNesseI hope to finish the first release of Breve in Java, in a few weeks. (I
expect to be able to run full storytests with it for the first time in a few hours). I will then port Breve and FitLibrary and FitLibrary2 (with generics) to C#, as more of my clients now are .NET-based; they are bemused that I don't support C#. Thereafter, I'll maintain the Java and C# versions in synch. I will not be doing a port to Python; John Roth is active with that. Many thanks to Mike Stockdale for his earlier work on FitLibrary in C#. BTW, Breve is a IDE for storytests, with WYSIWYG editing of storytests/tables/suites, refactoring, searching, auto-completion, running, etc etc (analogous to Eclipse). It has the start of a plug-in architecture, to allow for plug-ins, such as to generate FitNesse wiki pages or HTML. A later release will introduce it as an IDE plugin, such as for Eclipse. I'll initially make it available as a freeware product; a later version will include a book. FitLibrary itself will continue in open-source. Cheers, Rick Jeff Parker wrote: > > Do you know when the .NET version of this library will be released? > > -----Original Message----- > From: fitnesse@... <mailto:fitnesse%40yahoogroups.com> > [mailto:fitnesse@... <mailto:fitnesse%40yahoogroups.com>] > On Behalf > Of Rick Mugridge > Sent: Friday, December 29, 2006 6:14 PM > To: fitnesse@... <mailto:fitnesse%40yahoogroups.com> > Subject: [fitnesse] Announce: 20061230 release of FitLibrary in Java for > FitNesse > > That's available at https://sourceforge.net/projects/fitlibrary/ > <https://sourceforge.net/projects/fitlibrary/> > > |
|
|
Re: Announce: 20061230 release of FitLibrary in Java for FitNesseRick,
Sounds awesome, as always. One question though, will the IDE include a kind of GUI for writing story tests easier? One problem I've had with some clients is that they find wiki markup scary, and sometimes even I lose my place within large tables with all of those pipes. I was working on a javascript based xmlhttp plugin for live editing of tables, but haven't had time lately to complete it. Does Breve allow for this? Thanks, James On 12/31/06, Rick Mugridge <rick@...> wrote: > > I hope to finish the first release of Breve in Java, in a few weeks. (I > expect to be able to run full storytests with it for the first time in a few > hours). > > I will then port Breve and FitLibrary and FitLibrary2 (with generics) to > C#, as more of my clients now are .NET-based; they are bemused that I don't > support C#. Thereafter, I'll maintain the Java and C# versions in synch. I > will not be doing a port to Python; John Roth is active with that. > > Many thanks to Mike Stockdale for his earlier work on FitLibrary in C#. > > BTW, Breve is a IDE for storytests, with WYSIWYG editing of > storytests/tables/suites, refactoring, searching, auto-completion, running, > etc etc (analogous to Eclipse). It has the start of a plug-in architecture, > to allow for plug-ins, such as to generate FitNesse wiki pages or HTML. A > later release will introduce it as an IDE plugin, such as for Eclipse. I'll > initially make it available as a freeware product; a later version will > include a book. FitLibrary itself will continue in open-source. > > Cheers, Rick > > Jeff Parker wrote: > > Do you know when the .NET version of this library will be released? > > -----Original Message----- > From: fitnesse@... <fitnesse%40yahoogroups.com> [mailto: > fitnesse@... <fitnesse%40yahoogroups.com>] On Behalf > Of Rick Mugridge > Sent: Friday, December 29, 2006 6:14 PM > To: fitnesse@... <fitnesse%40yahoogroups.com> > Subject: [fitnesse] Announce: 20061230 release of FitLibrary in Java for > FitNesse > > That's available at https://sourceforge.net/projects/fitlibrary/ > > > |
|
|
Re: Announce: 20061230 release of FitLibrary in Java for FitNesseHi James,
Yes, at the moment, writing the storytests is the biggest limit on storytest driven development. Breve is GUI-based; I've been building it since April. My aim is to make it easy for Product Managers who are happy in Word, etc, while also being what I want. (For a very rough idea, it will be like comparing a simple text editor with Eclipse in terms of support and what can be auto-generated). I'm working with a "non-technical" Product Manager who will start using it in a few weeks and provide feedback, and I've lined up a usability expert to do a usability study. I've developed specialised GUI for handling the tables, as Word, Excel, and other apps that play with tables, all handle nested tables poorly. I'm working on refactoring at the moment, which has led to some interesting architectural changes. We've learned a lot from having great tools like FitNesse and Fit. Cheers, Rick James Carr wrote: > > Rick, > > Sounds awesome, as always. One question though, will the IDE include a > kind of GUI for writing story tests easier? One problem I've had with > some clients is that they find wiki markup scary, and sometimes even I > lose my place within large tables with all of those pipes. I was > working on a javascript based xmlhttp plugin for live editing of > tables, but haven't had time lately to complete it. Does Breve allow > for this? > > Thanks, > James > > On 12/31/06, *Rick Mugridge* <rick@... > <mailto:rick@...>> wrote: > > I hope to finish the first release of Breve in Java, in a few > weeks. (I expect to be able to run full storytests with it for the > first time in a few hours). > > I will then port Breve and FitLibrary and FitLibrary2 (with > generics) to C#, as more of my clients now are .NET-based; they > are bemused that I don't support C#. Thereafter, I'll maintain the > Java and C# versions in synch. I will not be doing a port to > Python; John Roth is active with that. > > Many thanks to Mike Stockdale for his earlier work on FitLibrary > in C#. > > BTW, Breve is a IDE for storytests, with WYSIWYG editing of > storytests/tables/suites, refactoring, searching, auto-completion, > running, etc etc (analogous to Eclipse). It has the start of a > plug-in architecture, to allow for plug-ins, such as to generate > FitNesse wiki pages or HTML. A later release will introduce it as > an IDE plugin, such as for Eclipse. I'll initially make it > available as a freeware product; a later version will include a > book. FitLibrary itself will continue in open-source. > > Cheers, Rick > > Jeff Parker wrote: >> >> Do you know when the .NET version of this library will be released? >> >> -----Original Message----- >> From: fitnesse@... >> <mailto:fitnesse%40yahoogroups.com> >> [mailto:fitnesse@... >> <mailto:fitnesse%40yahoogroups.com>] On Behalf >> Of Rick Mugridge >> Sent: Friday, December 29, 2006 6:14 PM >> To: fitnesse@... <mailto:fitnesse%40yahoogroups.com> >> Subject: [fitnesse] Announce: 20061230 release of FitLibrary in >> Java for >> FitNesse >> >> That's available at https://sourceforge.net/projects/fitlibrary/ >> <https://sourceforge.net/projects/fitlibrary/> >> > > |
|
|
|
|
|
|
|
|
Re: Announce: 20061230 release of FitLibrary in Java for FitNesseHi Chris,
I've obviously missed some test cases. I'll look into it now. Yes, SuiteFixture depends on FitLibraryServer being used. Look at the code in fitlibrary.spec.SpecifySuiteFixture or fitlibrary.debug.DebugPage to see how to use FitLibraryServer directly. Cheers, Rick Helck, Christopher wrote: > > Hi Rick and other Fitnesse Folk, > > The new release seems to fix many of the problems I had encountered > with the delta release. Many thanks. > > I'm still having problems with setUp() and tearDown(). > > I have a SuiteFixture, DoFixture, and domain object called TdlSuite, > ProtocolFixture, and ProtocolModel. My DoFixture creates the domain > object in its constructor and reuses it as needed. I notice that the > domain object's setUp() and tearDown() methods are being called right > away immediately after my DoFixute is parsed. Is this the correct > behaviour? > > I have these classes: > > public class TdlSuite extends SuiteFixture { > public Object protocol() { > return new ProtocolFixture(); > } > ... > } > > public class ProtocolFixture extends DoFixture { > public ProtocolFixture() { > super(new ProtocolModel()); > } > > // More methods that return various Fixtures that wrap ProtocolModel. > public Fixture configure { ... } > ... > } > > public class ProtocolModel { > public void setUp() { ...} > public void tearDown() {...} > > // Domain specific methods > ... > } > > My test looks like this: > > |com.ebs.TdlSuite| > > |select or | complete| > > |keywords | complete| > > |protocol| # Line 1 > > |configure| > |blah blah blah| > > # Following tables are normal DoFixure stuff... > . > > When the test runs the ProtocolModel's setUp/tearDown methods are both > being called right after Line 1 in the test. I was hoping that the > tearDown would be called when the ProtocolFixture went out of scope > (flow?). The obvious fix for me is to move the setup/teardown logic up > into the ProtocolFixture, but I wonder what your take is on this? > > Happy New Year, > Chrsitopher Helck > > > ------------------------------------------------------------------------ > *From:* fitnesse@... [mailto:fitnesse@...] *On > Behalf Of *Rick Mugridge > *Sent:* Friday, December 29, 2006 7:14 PM > *To:* fitnesse@... > *Subject:* [fitnesse] Announce: 20061230 release of FitLibrary in Java > for FitNesse > > That's available at https://sourceforge.net/projects/fitlibrary/ > <https://sourceforge.net/projects/fitlibrary/> > > This release includes some new new capability and a fix. Changes include > the following. See the UserGuide included in the download zip file for > further details. > > * FitLibrary now enables debugging when running storytests. > * CompareFileFixture now handles absolute file names as well as > relative file names. > * An empty tables cell may be interpreted as follows, depending on what > value the cell is expected to hold: > * An empty list, set, array, map > * A null value for an object, including Integer, etc > * FitLibrary accesses private getter/setters for properties. This > allows for setter injection without generally exposing properties. > * FitLibrary accesses private nullary constructors. This allows for > object creation without generally exposing the constructor. > * Use of HR to separate phases of DomainFixture > * The method that is called for a calculation rules may return an > object that's a subtype of the declared return type of the method. The > actual type of the result is used to check it against the expected value > * Fixed problem with a startUp() method being called more than once for > suite fixtures, etc. > * Lots of storytests have been added to check that exceptions are > caught correctly and nulls are handled correctly > * Experimental feature: If it exists, the method startCreatingObject() > of a domain adapter or sut is called when DomainFixture (and other > fixtures) automatically create an object; the object is passed as an > argument. This allows for specialised setup of the object before it has > property values automatically injected into it. The corresponding method > endCreatingObject() is called at the end of automatic injection. > * Experimental feature: A parse delegate may be specified for any type, > and so will be override any provided Parser for that type for the > duration of the storytest concerned. > * Experimental feature: A revised mechanism for supporting polymorhism > is included. I will later add support for tailoring the way that the > type is specified in the table. The documentation is still to be > completed. > * Only relevant to those who write their own fixtures: The > interpretation cycle passes extra type information; this is used in > FitLibrary2 to track the generic types of objects (which is missing at > runtime, due to ''erasure'' in Java). The way that Parsers are selected > has been changed considerably. Some class names have been changed, and > the package structure has changed in minor ways. FitLibraryServer has > changed considerably. > > Cheers, Rick > > Thank you for being part of it. > > The information contained in this e-mail is confidential. This e-mail > is intended only for the stated addressee. If you are not an > addressee, you must not disclose, copy, circulate or in any other way > use or rely on the information contained in this e-mail. if you have > received this e-mail in error, please inform us immediately and delete > it and all copies from your system. > > > > EBS Dealing Resources International Limited. Registered address: 2 > Broadgate, London EC2M 7UR, United Kingdom. Registered number 2669861. > > > > EBS Dealing Resources, Inc, registered in Delaware. Address: 535 > Madison Avenue, 24th Floor, New York, NY 10022, USA, and One upper > Pond road, Building F - Floor 3, Parsippany, NJ 07054, USA. > > > > EBS Dealing Resources Japan Limited, a Japanese Corporation. Address: > Asteer Kayabacho Bldg, 6th Floor, 1-6-1, Shinkawa, Chuo-Ku, Tokyo > 104-0033, Japan. > > > > |
|
|
|
|
|
Re: Announce: 20061230 release of FitLibrary in Java for FitNesseHi Chris,
I had a good look at this yesterday and started to implement a fix. Then I thought about the complex cases, where several fixtures share the same SUTs, and some also have setUp()/tearDown() methods. It gets complex as to what setUp() and tearDown() mean, and especially when such SUTs are shared between SuiteFixtures and DoFixtures. It gets complex to describe what happens, introducing much more complexity than the feature deserves. This is another case where it's easy to miss the potential interactions between two distinct features of a design. I've noticed before that the major problems arise in the gaps between stories, especially when there is a reasonable time between when they're chosen and implemented. That got me thinking about having whether it was wise to have FitLibrary calling specialised methods like setUp() in SUT (POJ) classes (ie, not fixture, traverses nor domain adapters). In retrospect, it's not a good idea, so I will change that, as those methods are fundamentally concerned with fixturing. Hopefully, it won't affect too much existing fixture code. So the outcome, which I will finish now, is that setUp() and tearDown() will not take account of shared objects. So if two fixture objects, without setUp()/tearDown(), refer to the same domain adapter that has setUp()/tearDown(), the methods are called in the wrong order, because the tearDown() is called on the second table's fixture. That's what you've seen. The solution is to move the setUp()/tearDown() methods into the fixtures, or to not share domain adapters between them and to introduce a second level of domain adapter. I will also consider calling instead the methods suiteSetUp() and suiteTearDown() for suite fixtures, to at least disambiguate that case. I will add a note on this to the UserGuide. Cheers, Rick Helck, Christopher wrote: > > Hi Rick, > I created a unit test. There are three files: > > MyTest.java is the unit test. It creates a html page and feeds it to > fitnesse. > MySuite.java is a simple SuiteFixture. One of its methods returns a > domain object called MyModel. > MyModel.java is the model. > Both MySuite and MyModel keep an audit trail of which of thier methods > have been called. After MyTest feeds the html to Fitnesse it looks at > the audit trail and compares it to what it exected. The expected order > of calls is: > > MySuite.setUp(), MySuite.suite1(), MyModel.setUp(), MyModel.method1(), > MyModel.method2(), MyModel.tearDown(), MySuite.tearDown() > > but instead I get > > MySuite.setUp(), MySuite.suite1(), MyModel.setUp(), > MyModel.tearDown(), MyModel.method1(), MyModel.method2(), > > Hope this helps. > Christopher > > > ------------------------------------------------------------------------ > *From:* fitnesse@... [mailto:fitnesse@...] *On > Behalf Of *Rick Mugridge > *Sent:* Tuesday, January 02, 2007 6:19 PM > *To:* fitnesse@... > *Subject:* Re: [fitnesse] Announce: 20061230 release of FitLibrary in > Java for FitNesse > > Hi Chris, > > I've obviously missed some test cases. I'll look into it now. > > Yes, SuiteFixture depends on FitLibraryServer being used. Look at the > code in fitlibrary.spec.SpecifySuiteFixture or > fitlibrary.debug.DebugPage to see how to use FitLibraryServer directly. > > Cheers, Rick > > Helck, Christopher wrote: > >> Hi Rick and other Fitnesse Folk, >> >> The new release seems to fix many of the problems I had encountered >> with the delta release. Many thanks. >> >> I'm still having problems with setUp() and tearDown(). >> >> I have a SuiteFixture, DoFixture, and domain object called TdlSuite, >> ProtocolFixture, and ProtocolModel. My DoFixture creates the domain >> object in its constructor and reuses it as needed. I notice that the >> domain object's setUp() and tearDown() methods are being called right >> away immediately after my DoFixute is parsed. Is this the correct >> behaviour? >> >> I have these classes: >> >> public class TdlSuite extends SuiteFixture { >> public Object protocol() { >> return new ProtocolFixture(); >> } >> ... >> } >> >> public class ProtocolFixture extends DoFixture { >> public ProtocolFixture() { >> super(new ProtocolModel()); >> } >> >> // More methods that return various Fixtures that wrap ProtocolModel. >> public Fixture configure { ... } >> ... >> } >> >> public class ProtocolModel { >> public void setUp() { ...} >> public void tearDown() {...} >> >> // Domain specific methods >> ... >> } >> >> My test looks like this: >> >> |com.ebs.TdlSuite| >> >> |select or | complete| >> >> |keywords | complete| >> >> |protocol| # Line 1 >> >> |configure| >> |blah blah blah| >> >> # Following tables are normal DoFixure stuff... >> . >> >> When the test runs the ProtocolModel's setUp/tearDown methods are >> both being called right after Line 1 in the test. I was hoping that >> the tearDown would be called when the ProtocolFixture went out of >> scope (flow?). The obvious fix for me is to move the setup/teardown >> logic up into the ProtocolFixture, but I wonder what your take is on >> this? >> >> Happy New Year, >> Chrsitopher Helck >> >> >> ------------------------------------------------------------------------ >> *From:* fitnesse@... [mailto:fitnesse@...] >> *On Behalf Of *Rick Mugridge >> *Sent:* Friday, December 29, 2006 7:14 PM >> *To:* fitnesse@... >> *Subject:* [fitnesse] Announce: 20061230 release of FitLibrary in >> Java for FitNesse >> >> That's available at https://sourceforge.net/projects/fitlibrary/ >> <https://sourceforge.net/projects/fitlibrary/> >> >> This release includes some new new capability and a fix. Changes include >> the following. See the UserGuide included in the download zip file for >> further details. >> >> * FitLibrary now enables debugging when running storytests. >> * CompareFileFixture now handles absolute file names as well as >> relative file names. >> * An empty tables cell may be interpreted as follows, depending on what >> value the cell is expected to hold: >> * An empty list, set, array, map >> * A null value for an object, including Integer, etc >> * FitLibrary accesses private getter/setters for properties. This >> allows for setter injection without generally exposing properties. >> * FitLibrary accesses private nullary constructors. This allows for >> object creation without generally exposing the constructor. >> * Use of HR to separate phases of DomainFixture >> * The method that is called for a calculation rules may return an >> object that's a subtype of the declared return type of the method. The >> actual type of the result is used to check it against the expected value >> * Fixed problem with a startUp() method being called more than once for >> suite fixtures, etc. >> * Lots of storytests have been added to check that exceptions are >> caught correctly and nulls are handled correctly >> * Experimental feature: If it exists, the method startCreatingObject() >> of a domain adapter or sut is called when DomainFixture (and other >> fixtures) automatically create an object; the object is passed as an >> argument. This allows for specialised setup of the object before it has >> property values automatically injected into it. The corresponding method >> endCreatingObject() is called at the end of automatic injection. >> * Experimental feature: A parse delegate may be specified for any type, >> and so will be override any provided Parser for that type for the >> duration of the storytest concerned. >> * Experimental feature: A revised mechanism for supporting polymorhism >> is included. I will later add support for tailoring the way that the >> type is specified in the table. The documentation is still to be >> completed. >> * Only relevant to those who write their own fixtures: The >> interpretation cycle passes extra type information; this is used in >> FitLibrary2 to track the generic types of objects (which is missing at >> runtime, due to ''erasure'' in Java). The way that Parsers are selected >> has been changed considerably. Some class names have been changed, and >> the package structure has changed in minor ways. FitLibraryServer has >> changed considerably. >> >> Cheers, Rick >> >> Thank you for being part of it. >> >> The information contained in this e-mail is confidential. This e-mail >> is intended only for the stated addressee. If you are not an >> addressee, you must not disclose, copy, circulate or in any other way >> use or rely on the information contained in this e-mail. if you have >> received this e-mail in error, please inform us immediately and >> delete it and all copies from your system. >> >> >> >> EBS Dealing Resources International Limited. Registered address: 2 >> Broadgate, London EC2M 7UR, United Kingdom. Registered number 2669861. >> >> >> >> EBS Dealing Resources, Inc, registered in Delaware. Address: 535 >> Madison Avenue, 24th Floor, New York, NY 10022, USA, and One upper >> Pond road, Building F - Floor 3, Parsippany, NJ 07054, USA. >> >> >> >> EBS Dealing Resources Japan Limited, a Japanese Corporation. Address: >> Asteer Kayabacho Bldg, 6th Floor, 1-6-1, Shinkawa, Chuo-Ku, Tokyo >> 104-0033, Japan. >> >> >> > |
| Free embeddable forum powered by Nabble | Forum Help |