Skip to content

Instantly share code, notes, and snippets.

Ruben Bartelink bartelink

Block or report user

Report or block bartelink

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View CompositeDataAttribute.cs
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Reflection;
using Xunit.Extensions;
namespace Prototypes.AutoFixture.Xunit.Extensions
public class CompositeDataAttribute : DataAttribute
View describe_AClass.cs
output of the row test below
describe AClass
describe many variations
A should equal A
C should equal A - [Failed]
//top level context to describe class
class describe_AClass
View gist:3377237
static class Program
static void Main()
var x = new { a=0, b=1 };
f( x );
static void f(dynamic x)
bartelink / PostProcessWhereIsACustomization.cs
Last active Jan 7, 2020
AutoFixture customization to allow insertion of arbitrary postprocessing logic a la Customize( c=>c.Do()) but in a global manner Revised for v3 (initally for v2)
View PostProcessWhereIsACustomization.cs
namespace Ploeh.AutoFixture
using Kernel;
using System;
public class PostProcessWhereIsACustomization<T> : ICustomization
where T : class
readonly PostProcessSpecimensBehavior _behavior;
bartelink / ClassAutoData.cs
Created Jul 17, 2012
ClassAutoData spiking
View ClassAutoData.cs
[ClassAutoData( typeof( XProvider ) )]
public static void Scenario( X x, string y )
Console.WriteLine( x + "," + y );
public class ClassAutoDataAttribute : CompositeDataAttribute
public ClassAutoDataAttribute( Type @class )
bartelink / Get-GrepWinClipboardFiles.ps1
Created Jul 4, 2012
Get-GrepWinClipboardFiles. Example: Get-GrepWinClipboardFiles| %{ tf checkout $_ }
View Get-GrepWinClipboardFiles.ps1
function Get-ClipboardText {
$command = {
add-type -an
powershell -sta -noprofile -command $command
function Get-GrepWinClipboardFiles() {
get-ClipboardText | ConvertFrom-Csv -del "`t" | %{ $_.Path+"\"+$_.Name }
bartelink / SutContext.cs
Created May 16, 2011
The consumption piece for HackedDisposableTrackingCustomization.cs
View SutContext.cs
static class SutContext
public static SutContext<T> Create<T>()
T sut;
return Create<T>( out sut );
public static SutContext<T> Create<T>( out T sut )
bartelink / HackedDisposableTrackingCustomization.cs
Last active Sep 25, 2015
My 'teardown in reverse order' fork of AutoFixture.Kernel.DisposableTrackingCustomization (Current version works against v3.x, initial revision against 2.x)
View HackedDisposableTrackingCustomization.cs
namespace Ploeh.AutoFixture.Forked
class HackedDisposableTrackingCustomization : ICustomization, IDisposable
private readonly DisposableTrackingBehavior behavior;
public HackedDisposableTrackingCustomization()
this.behavior = new DisposableTrackingBehavior();
bartelink / Frozen.cs
Created May 16, 2011
AutoFixture Frozen extension relying on Injected Fixture
View Frozen.cs
public class Frozen<T>
readonly T _value;
private Frozen( T t )
_value = t;
public Frozen( Fixture fixture )
bartelink / ThesisExample.cs
Created Nov 5, 2010
View ThesisExample.cs
1. uses a ContextFixture (which requires Disposal)
2. keeps all Context/ContextFixture+Do+Assert/Observation in a single Test Method at all costs -- lambdas get very yucky the minute you factor calls to any of these into test methods
3. The TheoryDataProvider junk at the end is also applicable to xUnit [Theory] stuff (and you use the same [ClassData] and friends as one uses for other stuff and just removes some cruft from writing up test cases)
4. uses sut/result/exception standard names
5. This is a sample and has stuff that doesnt scale up that I wouldnt do. e.g. dont use Conditional Logic in tests with care - something as simple as a should succeed / should fail set of cases should generally be two separate Thesis methods
Go look in bitbucket - there's a good set of tests that serve as a better set of samples.
This snippet will self destruct when someone tells me that the acceptance tests and samples in Johannes' fork are clearer and more complete
You can’t perform that action at this time.