[HttpGet]
public IHttpActionResult GetTerm()
{
Response resp = new Response();
resp = InfomationController.GetTermAndCond(); //line 'LI001'
return Ok(resp);
}
[TestMethod]
public void GetTerm_FromGetTerm()
{
var controller = new ServController();
IHttpActionResult actionResult = controller.GetTerm();
Assert.IsNotNull(actionResult);
}
在上面这里,Response类充当一个模板,根据GetTermAndCond();
(静态方法)添加的值添加另一个字段(按摩)。
P.S.-无论如何都无法改变源代码。我知道这可能是一个重复的视角,但我在堆栈中浏览了很多次,并没有找到解决方案。如果有人能找到答案,那将是一个很大的帮助。
答案 0 :(得分:1)
为包含InformationController
的程序集生成Fakes程序集。然后你可以重新编写单元测试方法:
[TestMethod]
public void GetTerm_FromGetTerm()
{
var controller = new ServController();
using (ShimsContext.Create())
{
MyAssembly.Fakes.ShimInteractionController.GetTermsAndConds = () => SomeCannedResponse();
IHttpActionResult actionResult = controller.GetTerm();
var result = controller.GetTerm(); // Why do you call GetTerm twice?!
Assert.IsNotNull(actionResult);
}
}