我有一个类Class1,它有一个构造函数和几个方法。对于这些方法,我正在使用 MSTest 编写单元测试用例。这堂课看起来像这样。
class Class1
{
Order order = new Order(); // there is an class Order
public Class1(Order _order)
{
order = _order;
}
public virtual async Task<bool> GetData()
{
if(order != null)
{
//do something
}
else
{
// do something else
}
}
}
现在,我必须为此 GetData() 方法编写 2 个测试用例,分别测试 if 块和测试 else 块。我能够成功测试 if 块,但无法测试 else 块。我正在尝试编写的测试方法如下。
[TestMethod()]
public void GetDataTest()
{
Order order = new Order();
order = null;
var mockService = new Mock<Class1>(order)
{
CallBase = true
};
var result = await mockService.Object.GetData(); // error thrown from here
Assert.IsFalse(result);
}
我想要做的是将订单对象设置为空并将空对象传递给构造函数。但这会引发一些错误“找到歧义匹配”。显然,传递空值在这里不起作用。所以任何人都可以告诉我测试 else 块的任何其他工作。
PS:我需要测试 if 和 else 块,以便将其包含在代码覆盖率中。
梵蒂冈之花
波斯汪
PIPIONE
相关分类