Domanda

Ho appena iniziato a usare Resharper e sto cercando un modo per risolvere un problema particolare che ho con la specifica "Tipo Argomento è ridondante" Tooltip/QuickFix. Quando scrivo i test dell'unità che ho usato Assert.AreEqual<string>(x, y) e Resharper flagisce l'uso di <string> come ridondante. Vorrei non averlo contrassegnato come ridondante per questo o eventuali usi simili nei miei test unitari. Esiste un modo per disabilitare questo particolare caso di utilizzo (che sarebbe estensibile per le altre affermazioni)? Si prega di notare, vorrei evitare la soppressione con un commento a causa della grande quantità di rumore che creerebbe nel file di origine. Inoltre non voglio disabilitare completamente la funzione.

Per chiarimenti, il motivo per cui questo particolare caso è contrassegnato erroneamente secondo me è perché l'uso del generico causa l'errore dei tipi non corrispondenti nel presentare che sia contrassegnato a tempo di compilazione e non in fase di esecuzione. Vorrei mantenere questo comportamento iniziale di fallimento, ma sbarazzarmi di tutto il rumore extra che causa praticamente ogni test che scrivo.

Grazie

EDIT: c'è stata una domanda su come sarebbe il contenuto del test, quindi sto fornendo un esempio di una di queste affermazioni che sta causando la ridondanza di Resharper.

[TestMethod]
public void ViewModelConstructor_NullProgram_SetsVisibilityToCollapsed()
{
    _currentProgram = null; //Set condition under test
    var Target = TargetMaker(); //Use shared constructor code in all tests
    Assert.AreEqual<System.Windows.Visibility>(System.Windows.Visibility.Collapsed, Target.SectionVisibility);
}

EDIT 2: ecco un esempio del cambiamento suggerito prima e dopo Resharper. Questi due pezzi di codice mostrano risultati molto diversi. Ho notato i diversi comportamenti nei nomi delle funzioni di test.

class ClassUnderTest
{
    public string fieldUnderTest { get; set; }
    public ClassUnderTest()
    {
        fieldUnderTest = "New Value";
    }
}


[TestClass()]
public class ClassUnderTestTest
{

    [TestMethod()]
    public void ClassUnderTestConstructorTest_FailsTest()
    {
        ClassUnderTest target = new ClassUnderTest();
        Assert.AreEqual(true, target.fieldUnderTest);
    }

    [TestMethod()]
    public void ClassUnderTestConstructorTest_WontCompile()
    {
        ClassUnderTest target = new ClassUnderTest();
        Assert.AreEqual<string>(true, target.fieldUnderTest);
    }
}
È stato utile?

Soluzione

Resharper 6.1 introduce il concetto di impostazioni: "livelli". Ecco un blog-post che ti insegna come configurareprogetto Impostazioni, che è quello che sembri desideri.

Altri suggerimenti

Fare clic sulla parte ridondante, quindi fare clic a sinistra della riga e scegliere Inspection option for Redundent.... Lì puoi scegliere un livello di restrizione più basso fino a quando non ti piace.

Non devi circondare con commenti ogni istanza di Assert.Areequal. Invece, è possibile utilizzare i commenti per questo evidenziazione nell'intero file di origine. Basta aggiungere un commento invalidante all'inizio del file e uno abilitante - alla fine. Rumore minimo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top