我使用 RhinoMocks 进行模拟/存根,使用 Nunit 框架进行单元测试。
我有以下课程
class A
{
private int data = -1;
public void Initialize (int data)
{
this.data = data;
}
public void CallA()
{
if (data == -1) throw new InvalidArgumentException("data has invalid value -1");
try
{
A1("a1");
A2("a2");
}
catch (AException e)
{
throw;
}
catch (Exception e)
{
throw new AException(ErrorCode.UnknownException, e);
}
}
private void A1(string item)
{
}
private void A2(string item)
{
}
}
我正在努力遵循测试用例:
InvalidAgrumentException :如果
Initialized
未调用任一方法或将 -1 作为参数传递给Initialized
. 数据是私有的因此不能被模拟(直到使用诸如TypeMock 隔离器之类的库来执行IL Weaving)。要引发此异常,一种选择是调用Initialized
我不确定是否正确的方法?(因为数据也可以从其他地方设置为-1。虽然这不是问题,但需要额外的函数调用。)验证A1是用“a1”参数调用的,A2是用“a2”参数调用的。