Archives
Pex 0.19.41110.1: Better Visual Studio 2010 and .NET 4.0 Beta 2 Support, Smoother Moles
Submitted by Jonathan de Halleux on Thu, 12/11/2009 - 20:57.We just released the Pex 0.19.41110.1 just in time for TechEd session. This version brings an updated support for Visual Studio 2010 Beta2 and .NET 4.0 and many improvements to the Moles.
-
Better Dev10 Beta 2 support! We’ve upgraded our support for Visual
Studio 2010 Beta 2. This includes full support for .NET 4.0 Beta 2, the Visual Studio
Unit Test HostType and the Visual Studio integration.
Known Beta 2 issues: 1) When running Pex for the first time, the path to Visual Studio Unit Test is not found. You need to specify the Visual Studio ‘PublicAssemblies’ path (“c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies”), 2) Don’t run Pex on v2 projects, Pex will crash. -
Smooth generation of Stubs and Moles: when you create a stubs and
moles assembly that is not a project reference, like one of the system assemblies,
the stubs and moles code generator will automatically compile it into an assembly
and add it to the project. This dramatically increases the performance of projects
using Stubs and Moles.
- Stubs and Moles for VisualBasic.NET: the Stubs and Moles may be used in VisualBasic.NET projects. In that case, they are embedded as a compiled assembly.
-
Moles support for NUnit, xUnit.Net and
others: Unit tests involving Moles require the Pex profiler to work. We’ve
added a new mode to our command line runner that allows to execute your favorite unit
test framework runner under Pex. For example, the command “pex /runner=xunit.console.exe
tests.dll” will launch the xunit runner for test.dll under Pex. x64 assemblies are
still not supported.
-
Nicer Moles Syntax: we’ve added some little tweaks to the Moles API,
such as an implicit conversion operator to the moled type, that simplifies the syntax.
Here is a small example that showcases the current syntax: step 1 moles the Bank constructor,
step 2 moles the GetAccount method and returns a mole of Account, step 3 moles the
getter and setter of the Balance property.
-
Fluent Mole Binding: The Bind method returns the mole itself which
allows it to be used in a fluent fashion. Interface binding is specially useful when
you need to mole custom collections – just attach an array! For example, we attach
an array of integers to a the MyList type that implements IEnumerable<int>.
-
Breaking Changes in Stubs and Moles:
- The stubs and moles code generator tool is now ‘StubsGenerator’. You need to path this value in the property pages of your .stubx pages.
- No more AsStub and AsMole: the AsStub and AsMole helpers were confusing and pretty useless so we decided to reduce the amount of generated code by removing them.
- The naming convention for Stubs delegate fields always mangles the parameter types of the stubbed method, i.e. Foo(int) yields to a field called FooInt32. We used to be smart about adding parameters but we decided to make the scheme stable and symmetric with respect to the Moles.
- The ‘FallbackBehavior’ property has been renamed to ‘InstanceFallbackBehavior’ in both Stubs and Moles to make it more explicit.
As usual, we’ve also fixed a number of bugs and added features that were reported through our MSDN forums.
Our Goal Is To Minimise Coupling Between Classes. Not To Eliminate Getters And Setters.
Submitted by jason@parlezuml.com (Jason Gorman) on Thu, 12/11/2009 - 21:26.As I'm sure Jesus and Marx would attest, publish and be damned.
There's always a danger when you make a point that's in any way nuanced or open to interpretation that the huddled masses will switch their brains off and choose not to think about what you've said, but to cut it down to a set of pithy, out-of-context, oversimplified truisms - often completely missing the point you were trying to make.
There's always a danger when you make a point that's in any way nuanced or open to interpretation that the huddled masses will switch their brains off and choose not to think about what you've said, but to cut it down to a set of pithy, out-of-context, oversimplified truisms - often completely missing the point you were trying to make.
