I have a class with a bunch of overloaded operators:
public static double[,] operator +(Matrix matrix, double[,] array)
public static double[,] operator -(Matrix matrix, double[,] array)
public static double[,] operator *(Matrix matrix, double[,] array)
For all of them I'd like to test operands for null. I have an NUnit
test for that:
public void MatrixOperatorOperandIsNullThrows(Func<Matrix, double[,], double[,]> op)
{
Matrix m = null;
var right = new double[,] {{1, 1}, {1, 1}};
Assert.Throws<ArgumentException>(() => op(m, right));
}
How can I pass a lambda for each operator like (l,r) => l + r
?
You cannot immediately apply the TestCase attribute containing a lambda expression, i.e. the following test would be invalid:
What you can do, however, is to use the TestCaseSource attribute together with an IEnumerable of your lambda expressions, like this:
You can pass exactly that: