Type that returns a result based on some logic
The problem is the Initialise method. 

'Initialise', 'Init', 'PostConstruct', ... are always a code smell. All these methods perform actions/checks on an object after it has been created. 
But most of the time, these actions/checks need to happen before, or while an objects is created.

Refactor the code by using a factory-method or builder where you put the 'initialise' code in the method/class, instead of in the object itself.

Then you can write an easy test on this object creation or validation method/class.

I would rewrite to something like this: 

enum Reason{
    ZERO,ONE,OK
}


class MyFilterCreator
{
    public MyFilter create(int value)
    {
        if(shouldFilter(value) == Reason.OK){
            return new MyFilter(value);
        }else{
            return null;
        }
    }

    // write a test for this method
    public Reason shouldFilter(int _state)
    {
        if (_state == 0)
        {
            return Reason.ZERO;
        }
        else if(_state == 1)
        {
            return Reason.ONE;
        }
        else
        {
            return Reason.OK;
        }
    }
}


But to answer your question: No, do not check on messages, but on statuses.