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)
{
Console.WriteLine(x.b);
@bartelink
bartelink / PostProcessWhereIsACustomization.cs
Last active Sep 9, 2016
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
bartelink / ClassAutoData.cs
Created Jul 17, 2012
ClassAutoData spiking
View ClassAutoData.cs
[Theory]
[ClassAutoData( typeof( XProvider ) )]
public static void Scenario( X x, string y )
{
Console.WriteLine( x + "," + y );
}
public class ClassAutoDataAttribute : CompositeDataAttribute
{
public ClassAutoDataAttribute( Type @class )
@bartelink
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 system.windows.forms
[System.Windows.Forms.Clipboard]::GetText()
}
powershell -sta -noprofile -command $command
}
function Get-GrepWinClipboardFiles() {
get-ClipboardText | ConvertFrom-Csv -del "`t" | %{ $_.Path+"\"+$_.Name }
@bartelink
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
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
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
bartelink / ThesisExample.cs
Created Nov 5, 2010
Demonstrates bitbucket.org/johannesrudolph/subspec/overview
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 xunit.net 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.