在C#中,即使在使用SetupProperty或SetupSet时,当设置器是非平凡的时,Moq VerifySet也会抛出Expression is not a property setter invocation.。
下面是一个微不足道的例子。注意,Antler setter是琐碎的,而Antlers2 setter不是平凡的。
public class Dancer
{
public Dancer(bool pIsMale)
{
IsMale = pIsMale;
}
private bool _IsMale;
public v
我正在使用Moq。这个例子非常简单。在设置属性后,我无法读取它。
var mock = new Mock<HttpResponseBase>();
mock.Setup(x => x.Cookies).Returns(new HttpCookieCollection());
mock.Setup(x => x.Headers).Returns(new NameValueCollection());
var response = mock.Object;
// now I set StatusCode
response.StatusCode = 404;
// now
我正在用Moq做一些单元测试,我想做的等价物是:
Location location = new Location();
LocationTimes locationTimes = new LocationTimes();
location.LocationTimes.Add(locationTimes);
所以我试了一下:
var mockLocation = new Mock<Location>();
var mockLocationTime = new Mock<LocationTimes>();
mockLocationTime.SetupProperty(f
我使用Moq来模拟视图,并使用模型来测试演示者。
我想使用模拟来确认我的模型和视图的数组成员确实是在ResetStatuses和UpdateTxtStatuses方法中设置的。
但是,在调用ResetStatuses时,运行测试会导致错误,其中包含错误消息:
Result StackTrace:
at DSimGui.SocketStatusIGSSPresenter.ResetStatuses() in C:\dev\dir\DG\DSimGui\SocketStatusIGSSPresenter.cs:line 89
at DSimGuiTest.SocketStatusIGSS
在尝试模拟包含类型为Items的属性ICollection<>的对象时,我遇到了一个问题。我得到以下错误:
System.NotSupportedException :非虚拟(在VB中可覆盖)成员:m => m.Items上的无效设置
问题是属性项已经是虚拟。
我在下面的Sandbox中复制了我在项目中遇到的错误:
public class ItemList
{
public virtual int Id { get; set; }
}
public class SpecialList
{
public virtual string Token {
我在使用Moq模拟时返回会话值时遇到了问题。使用以下内容
public class TestHelpers
{
public long sessionValue = -1;
public HttpContextBase FakeHttpContext()
{
var httpContext = new Mock<HttpContextBase>();
var session = new Mock<HttpSessionStateBase>();
httpContext.Setup(x => x.Session).Returns(session.
我是Moq的新手,我有这样的测试功能:
using Moq;
using Xunit;
namespace MyTest
{
public class UseMoq
{
public interface IFoo
{
string Name { get; set; }
}
[Fact]
public static void UseMock()
{
var mock = new Mock<IFoo>();
在下面的代码中,我使用Moq编写了一个示例测试。我已经创建了一个模拟对象,并且我正在使用SetupProperty来设置要为该属性返回的假值。但是我在_sharedService.VerifyAll()行得到了上面的错误。 我知道我错过了一些琐碎的东西,但不是很确定是什么。有人能帮帮忙吗? [TestFixture]
public class ObjectFactoryTests : TestFixtureBase
{
private Mock<ISharedService> _sharedService;
[SetUp]
public void Set
我正在试图理解为什么模仿会以这样的方式进行(我在使用NUnit和Moq)。比方说,我们有一个简单的类:
public class Package
{
public virtual int PackageId { get; set; }
public Package()
:this(-1)
{
}
public Package(int packageId)
{
PackageId = packageId;
}
}
还有一些简单的测试来讨论:
[TestFixture]
public class NUnit
我在做一些研究。我想使用moq并将其传递给MVC控制器,以便允许它在会话中设置一些值。我已经写了一些代码,看看是否可以“打开”一个没有setter的属性。只是不知道有没有可能...
下面的代码是我尝试设置一个没有setter的属性的尝试!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Moq;
namespace TestMoq
{
class Program
{
static void Main(string[] args
我正在开发一个Http模块,它只记录响应时间和大小,然后将结果附加到响应体中。
我的模块如下所示:
public override void PreRequestHandlerExecute(HttpContextBase context)
{
// Add a filter to capture response stream
context.Response.Filter = new ResponseSniffer(context.Response.Filter);
}
public override void ApplicationEndRequest(HttpCont
最近,在测试我的一个属性设置器时,我感到有点头疼。我希望设置我的属性以返回某个值,并且不调用setter逻辑,因为它有一些繁重的操作,而且我不希望该逻辑影响我的单元测试。
我知道我可以把这个逻辑移到一个方法上,然后用这个新的方法来代替,但是这个问题让我很好奇,我已经挖了一些东西。我的研究结果是在下面的FooTests类,其中一个使用SetupProperty工作,但让我觉得这不是这个方法的目的。
是否有专门的方法来短路设置在部分模拟莫克?
Foo.cs:
public class Foo
{
private int _bar;
public virtual int Bar
我有一节课:
public class UserSet
{
public int One { get; set; }
public string Two { get; set; }
public string Three { get; set; }
}
还有一个静态类:
public static class AllUsers
{
public static List<UserSet> Usersc = new List<UserSet>();
}
我总是创建新的UserSet,然后将其存储在Usersc中。基本上我是这样做的:
Data
使用Moq来处理暴露仅限set属性的接口的正确方法是什么?以前我已经添加了另一个访问器,但是这个访问器已经深入我的领域,到处都是随机的throw new NotImplementedException()语句。
我只想做一些简单的事情,比如:
mock.VerifySet(view => view.SetOnlyValue, Times.Never());
但这会产生The property 'SetOnlyValue' has no getter的编译错误
我正在努力解决如何使用Moq-设置-返回结构的问题。
首先,我的背景是:
一些类型为IRepository-Interface的存储库必须实现StoreAsync-Method,它返回一个带有存储实体的StoreResult对象作为包含的属性。
using System.Threading.Tasks;
using Moq;
using Xunit;
namespace Tests
{
public class Entity { }
public class StoreResult
{
public Entity Entity { get; set;
我正在使用nUnit和Moq编写一些单元测试,这需要大量的数据模拟。我创建了一个帮助方法,以避免在每个单独的测试中模拟数据。以下是一个简化的版本:
protected void MockLotsOfData()
{
var orders = new List<Order>()
{
new Order()
{
Id = 1234,
Total = 67.95
ExpressShip = false
},
new Order()
我试图模拟(使用Moq)一个类在只公开两个属性的类上设置一个返回对象。
在我有限的Moq经验中,我通常使用Setup() lamda来定义方法调用,然后返回()返回所需的输出。
我现在倒在这里的是设置()。在构造函数完成工作、填充两个属性然后返回时,没有一个调用的“方法”。
我想要mock...obviously的那一堂课被压缩了:
public class CarResponse
{
public IMetaModel meta { get; set; }
public List<ICarModel> cars { get; set; }
public