<commit_before># NEdifis

Framework for enhanced testing using NUnit and NSubstitute. This project contains classes and 
attributes which can be used to simplify testing and enforcing conventions to your tests. It 
helps to glue your implementation and tests together and reference each other.

## Attributes

The additional attributes helps your tests to tell more about themselfes.

### `Because` Attribute

The because attribute is used to give something a reason, because some attribute don't support
a reason by default.

	[ExcludeFromCodeCoverage]
    [Because("I wrap a system functionality which cannot be tested")]
	public class HttpWrapper : IWrapHttp
	{
	}

The `Because` makes it easier to tell _why_ you have done something. Attribute are easier than 
inspecting the file history and the attribute can be used for your convention tests (see below).

### `TestFixtureFor` and `TestedBy`

The TestFixtureFor (which inherits from TestFixture) and TestedBy are symetric to glue the test and 
the class.

    [TestedBy(typeof(TicketAttribute_Should))]
    public class TicketAttribute : Attribute
    {
	}

	[TestFixtureFor(typeof(TicketAttribute))]
    // ReSharper disable once InconsistentNaming<commit_msg>documentation<commit_after># NEdifis

Framework for enhanced testing using NUnit and NSubstitute. This project contains classes and 
attributes which can be used to simplify testing and enforcing conventions to your tests. It 
helps to glue your implementation and tests together and reference each other.

## `ContextFor`

**TODO**: Documentation of this awesome class implementing a builder pattern 


## Attributes

The additional attributes helps your tests to tell more about themselfes.

### `Because` Attribute

The `Because` attribute is used to give something a reason, because some attribute don't support
a reason by default like

	[ExcludeFromCodeCoverage]
    [Because("I wrap a system functionality which cannot be tested")]
	public class HttpWrapper : IWrapHttp
	{
	}

The `Because` makes it easier to tell _why_ you have done something. Attribute are easier than 
inspecting the file history and the attribute can be used for your convention tests (see below).


### `TestFixtureFor` and `TestedBy`

The TestFixtureFor (which inherits from TestFixture) and TestedBy are symetric to glue the test and 
the class.

    [TestedBy(typeof(TicketAttribute_Should))]
    public class TicketAttribute : Attribute
    {
	}

	[TestFixtureFor(typeof(TicketAttribute))]
    // ReSharper disable once InconsistentNaming
{'fraction_non_alphanumeric': 0.05275590551181102, 'fraction_numerical': 0.0, 'mean_word_length': 4.775, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '274613', 'n_tokens_mistral': 680, 'n_tokens_neox': 649, 'n_words': 315}