我正在学习使用Moq进行单元测试,并且我有一个非常简单的Webapi控制器,它只返回状态OK。
public class TestController : ApiController
{
[HttpGet]
[Route("api/v1/test")]
public HttpResponseMessage GetHealth()
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
好吧,我不知道如何使用Moq来测试它,我将感谢一些帮助。
我正试图在我的MVC Web ASP.NET项目中实现一些单元测试。
我正在使用VS 2013 (终极版,更新2),并希望使用Moq。
我已经在解决方案中创建了一个测试项目。
在跟随的过程中,我想我应该能够在这里右键单击"GetCountOfPlatypusItemRecords“:
public class PlatypusItemsController : ApiController
{
private readonly IPlatypusItemRepository _PlatypusItemRepository;
public PlatypusItemsCon
我们正在使用MSTest和Moq编写异步代码的单元测试。
所以我们有一些代码看起来像:
var moq = new Mock<Foo>();
moq.Setup(m => m.GetAsync())
.Returns(Task.FromResult(10));
或者像这样的项目有一个新版本的Moq
var moq = new Mock<Foo>();
moq.Setup(m => m.GetAsync())
.ReturnsAsync(10);
查看ReturnsAsync的Moq实现:
public static IReturnsResult&
假设我有IService接口:
public interface IService
{
string Name { get; set; }
}
以及返回此接口的委托Func<IService>。
在我的单元测试中,我想使用下面的Moq来模拟委托的Invoke()方法:
[TestMethod]
public void UnitTest()
{
var mockService = new Mock<IService>();
var mockDelegate = new Mock<Func<IService>>();
我最近安装了Visual 2015,并使用一个网站和一个asp类库启动了一个项目,该类库将包含该网站的单元测试。我通常使用Moq来嘲笑,但我并不陌生,我尝试了一个不同的模拟框架。我遇到的问题是我添加了Moq作为对单元测试项目的引用,并开始使用它。一开始一切似乎都很好,直到我试图编译。
当我编译时,我收到一条错误消息,上面写着:
ASP.NET Core 5.0 error CS0246: The type or namespace name 'Moq' could not be found (are you missing a using directive or an ass
我正在尝试实现新的Azure.Storage v12 SDK,但遇到了一个单元测试的问题。调用Azure REST API的方法返回一个包含方法GetRawResponse()的Azure.Response<T>,以返回一个Azure.Response。 该实现依赖于使用在Azure.Response.Headers中找到的头,它是Azure.Core.ResponseHeaders类型的结构。我可以创建它的一个实例,但是当在它上面迭代时,它抛出了一个空引用异常。 using Azure.Core;
var headers = new ResponseHeaders();
va
考虑一下.NET程序集中的一个方法:
public static string GetSecurityContextUserName()
{
//extract the username from request
string sUser = HttpContext.Current.User.Identity.Name;
//everything after the domain
sUser = sUser.Substring(sUser.IndexOf("\\") + 1).ToLower();
re
我在单元测试中有以下代码
using Moq;
using OtherClass;
[TestClass]
public class TestClass
{
[TestMethod]
public void TestMethod()
{
OtherClass other = new OtherClass();
OtherClass.foo();
}
}
下面是另一个类
using ThirdClass;
public class OtherClass
{
public void foo()
{
Th
我对单元测试比较新,我发现的大部分信息似乎都在单元测试方面。我对此有了很好的了解,并计划在Moq中使用,这样我就不必为我的单元测试依赖关系提交任何模拟。
假设我有以下单元测试方法:
[TestMethod]
public void GetCustomerByIDUnitTest()
{
//Uses Moq for dependency for getting customer to make sure
//ID I set up is same one returned to test in Assertion
}
我是否必须创建另一个相同的测试,使用实际的实体框架和数据库调用
我觉得我被困在了这场政治/宗教斗争中。从我所做的研究中,我发现许多人强烈认为UI测试通过单元测试是愚蠢的,而由实际的人来做要好得多。我同意。
然而,上级似乎已经告诉我要对UI进行单元测试。(这已经很奇怪了,因为他们之前告诉我,我只需要写一个测试计划,而不是实际的测试)。老实说,我对单元测试不是很熟悉。我正在尝试使用MOQ,但我找到的所有教程都使用存储库,而不是服务,而且我正在围绕服务构建我的web应用程序。
以下是一个服务(的一部分)的示例:
public class ProductService : Service<Product, EntitiesDbContext>
我是新来Moq的
我读了很多关于Moq测试的文章,你不应该测试你的模拟对象,相反,你应该使用Moq来存根依赖,并让它像你想要的那样运行。但现在我问自己,如何测试一个方法是否可以从同一个类中的另一个方法调用,如下面的代码所示:
public class A // --> class i want to test
{
public virtual void TestMethod() // --> does it call testmethod2
{
TestMethod2();
}
public virtual void TestMethod2()
{
我正在为我的WEB API服务编写单元测试。我想模拟来自ip地址的请求。我正在使用Microsoft Unit Test。
[TestClass]
public class UnitTest1
{
private Mock<HttpContextBase> moqContext;
private Mock<HttpRequestBase> moqRequest;
[TestMethod()]
public void TestMethod1()
{
var controller = new TestControlle
在我的单元测试中,我使用Moq模拟了一个受保护的方法,并希望断言它被调用了一定的次数。描述了与早期版本的Moq类似的东西:
//expect that ChildMethod1() will be called once. (it's protected)
testBaseMock.Protected().Expect("ChildMethod1")
.AtMostOnce()
.Verifiable();
...
testBase.Verify();
但这不再有效;从那时起,语法发生了变化,我在使用Moq 4.x时找不到新的等价物:
testBaseMock