我正在尝试测试我的代码。需要测试与 NHibernate 标准一起使用的模块的功能。例如,这是我的单元测试之一。
[Fact]
public void test_name()
{
var criteria = ... // creates mock criteria
MyModule.DoWork(criteria); // adds restrictions to criteria
Assert.True(/* check if criteria.Add() was called
and what arguments were passed */);
}
如果 MyModule.DoWork() 添加了 Restrictions.Eq() 没有问题,因为它返回一个 SimpleExpression,我可以检查 expression.PropertyName 和 expression.Value。但如果改为添加 Restrictions.Not(Restrictions.Eq()) (返回 AbstractCriterion),则无法检查 PropertyName 和 Value。
在这种情况下我该怎么办?如何针对 Restrictions.Not 进行测试?