无计划的
最后更新: 2023年5月10日08:22 通过管理
管理
由: 卡门伊万诺夫
评论: 3.
类型: 功能要求
5

         
无计划的
最后更新: 4月25日15:53 通过

JustMock将匿名类型解释为元组。下面的示例演示了这个问题:

公共接口IAnsweringService{(int代码,字符串desc) GetAnswer (字符串问题);} (TestMethod公共无效AnswerToTheUniverseQuestionTest{varapiMock = Mock.Create();varexpectedAnswer ={code =42, desc =《生命终极问题的答案》};Mock.Arrange(() => apiMock.GetAnswer(Arg.AnyString)).Returns(expectedAnswer);varactualAnswer = apiMock。GetAnswer (“宇宙问题的答案是什么?”);Assert.AreEqual (expectedAnswer。代码,actualAnswer.code);Assert.AreEqual (expectedAnswer.desc actualAnswer.desc);}
测试失败,报错:

Telerik.JustMock.Core.MockException:链接返回值类型'<>f__AnonymousType1 ' 2[System. int32,System. int32]'与安排方法的返回类型'System.ValueTuple '不兼容' 2[System.Int32,System.String]'

无计划的
最后更新: 2023年4月19日09:59 通过
由:
评论: 0
类型: 功能要求
0
DoInteadAPI不能用于需要捕获方法调用参数并提供特定返回值的场景。
无计划的
最后更新: 4月13日2023 08:40 通过

以下代码片段在调试时导致测试执行中的挂起:

模拟。SetupStatic (typeof(时间间隔),行为。CallOriginal StaticConstructor.NonMocked);Mock.Arrange(() => TimeSpan。FromSeconds (15) .Returns (TimeSpan.MinValue);

这个问题可以通过通过JustMock扩展菜单禁用DebugWindow来临时解决。

无计划的
最后更新: 2023年3月15日06:42 通过Quoc锡

你好

我生成了一个语法树,我将使用Formatter.Format()从软件包Microsoft.CodeAnalysis.CSharp.Workspaces 4.4.0和。net 6中格式化它。在使用格式化器的地方存在一个测试,但是当启用JustMock分析器时,会抛出InvalidProgramException。当分析器被禁用时,一切工作正常。它在Windows和Linux上都失败。

异常

信息:
系统。InvalidProgramException:公共语言运行库检测到无效程序。

堆栈跟踪:
ContextIntervalTree”2。男星(TIntrospector&内省)
FormattingContext。函数(AbstractFormatEngine引擎,TokenStream)
AbstractFormatEngine。CreateFormattingContext(TokenStream TokenStream, CancellationToken CancellationToken)
AbstractFormatEngine。格式(CancellationToken CancellationToken)
CSharpSyntaxFormatting。Format(SyntaxNode节点,SyntaxFormattingOptions选项,IEnumerable ' 1 formattingRules, SyntaxToken startToken, SyntaxToken endToken, CancellationToken CancellationToken)
AbstractSyntaxFormatting。GetFormattingResult(SyntaxNode节点,IEnumerable ' 1跨度,SyntaxFormattingOptions选项,IEnumerable ' 1规则,CancellationToken CancellationToken)
格式化程序。GetFormattingResult(SyntaxNode节点,IEnumerable ' 1跨度,Workspace工作空间,OptionSet选项,IEnumerable ' 1规则,CancellationToken)
格式化程序。格式(SyntaxNode节点,IEnumerable ' 1跨度,Workspace工作空间,OptionSet选项,IEnumerable ' 1规则,CancellationToken)
格式化程序。Format(SyntaxNode node, Workspace Workspace, OptionSet options, CancellationToken CancellationToken)
UnitTest1.Test1()第23行

繁殖

你可以通过编写一个单元测试(我使用xUnit)来重现这一点:

事实公共无效Test1(){varclassText =@“使用系统;名称空间TestNameSpace。订单{公共类订单{公共Guid Id {get;设置;}}}”;varsyntaxTree = CSharpSyntaxTree.ParseText(classText);var工作区=AdhocWorkspace ();varformattedClassText = Formatter.Format(syntaxTree.GetRoot(), workspace).ToFullString();var预期=@“使用系统;名称空间TestNameSpace。订单{公共类订单{公共Guid Id {get;设置;}}}”;断言。平等(预期,formattedClassText);}}

系统信息

JustMock

见附件。我们不使用免费版。

net

dotnet——信息
. net SDK:
版本:7.0.200
提交:534117727 b

运行环境:
操作系统名称:Windows
操作系统版本:10.0.19045
操作系统平台:Windows
消除:win10-x64
基本路径:C:\Program Files\dotnet\sdk\7.0.200\

主持人:
版本:7.0.3
架构:x64
提交:0 a2bda10e8

.NET sdk安装:
6.0.406 [C:\Program Files\dotnet\sdk]
7.0.200 [C:\Program Files\dotnet\sdk]

.NET运行时安装:
Microsoft.AspNetCore.App 6.0.14 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

发现的其他架构:
x86 [C:\Program Files (x86)\dotnet]
已注册于[HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

环境变量:
没有设置

全球。json文件:
没有找到

了解更多:
https://aka.ms/dotnet/info

下载。net:
https://aka.ms/dotnet/download

我已经发布了一个问题,但不能再删除了: 在JustMock | Telerik论坛中格式化SyntaxNodes时抛出InvalidProgramException
无计划的
最后更新: 2023年1月25日10:55 通过

考虑以下简单的测试场景:

公共摘要TestBase{公共静态TestContext TestContext {得到;;}} [TestClass公共UnitTest1TestBase{(ClassInitialize公共静态无效ClassInitlialize和TestContext ctx{TestContext = ctx;} (TestMethod公共无效TestMethod1{}} [TestClass公共UnitTest2TestBase{(ClassInitialize公共静态无效ClassInitlialize和TestContext ctx{TestContext = ctx;} (TestMethod公共无效TestMethod1{}}

尝试在启用JustMock分析器的情况下运行上述测试,会出现System.InvalidProgramException异常。这个问题不能在MSTest中重现。TestFramework和MSTest。外种皮dapter packages prior to 3.0.x.

无计划的
最后更新: 2023年1月11日11:08 通过

下面的例子演示了这个问题:

理论] [MemberData (nameof (GetMemberDataContext))公共无效ValidParameters_Successintparam1,intparam2{/ /安排模拟。SetupStatic (typeof(MyClass)的行为。严格,StaticConstructor.Mocked);Mock.Arrange(() => MyClass.method1()). return (真正的);/ /行为IService服务=服务();保龄球Result = service.method2();/ /维护Assert.True(结果);Mock.Assert(() => MyClass.method1(), Occurs.Once());// <——此处测试失败,因为它报告方法调用发生了两次}

如果按照以下方式修改代码,则无法观察到问题,这表明行为不一致:

            
理论] [MemberData (nameof (GetMemberDataContext))公共无效ValidParameters_Successintparam1,intparam2{/ /安排模拟。SetupStatic (typeof(MyClass)的行为。严格,StaticConstructor.Mocked);Mock.Arrange(() => MyClass.method1()). return (真正的) .OccursOnce ();/ /行为IService服务=服务();保龄球Result = service.method2();/ /维护Assert.True(结果);Mock.Assert < MyClass > ();}

          

无计划的
最后更新: 03 Jan 2023 16:56 通过管理
由: Mihail
评论: 2
类型: 功能要求
1
考虑这样一个场景:一个类有一个字符串字段,它是类的主要数据。该类定义了对string的隐式强制转换操作符。当执行该强制转换操作符时,结果字符串将包含来自类字段的值。

实现对所描述的操作符的模拟支持。
无计划的
最后更新: 2022年11月10日09:40 通过
由于编译器(CS8175)或运行时(CS8175)的原因,无法对这些方法进行模拟。InvalidProgramException:不能创建盒装byref样值)错误。
无计划的
最后更新: 2022年10月17日12:22 通过

如果您使用c# using声明并启用了JustMock高级(提升)模式,则运行时将抛出InvalidProgramException。

下面是演示该问题的示例代码:

公共TestClassIDisposable{公共无效处理{}}

            
TestClass公共夹具{公共接口{} [TestMethod公共异步任务测试{ITest mock = mock . create ();使用TestClass test =();}}

无计划的
最后更新: 9月1日2022 07:21 通过管理
由: Mihail
评论: 1
类型: 功能要求
1
与dotCover的集成只能通过Telerik.JustMock.Configuration.exe获得,该程序与机器的注册表一起工作,需要安装JustMock。这种方法不适用于基于云的构建代理,因此我们需要一个不需要安装JustMock的集成。
无计划的
最后更新: 2022年7月4日11:41 通过
由:
评论: 0
类型: 功能要求
1

UI应用程序的线程模型与测试主机不同,这可能会导致以下问题:系统。InvalidOperationException: "调用线程必须是STA,因为许多UI组件需要这个".这个请求是关于用一些可以用来轻松解决这个问题的帮助器扩展JustMock。

无计划的
最后更新: 2022年1月18日09:35 通过管理
应该添加一篇文档文章,解释如何将JustMock集成到JetBrains Rider中
无计划的
最后更新: 2021年12月1日14:06 通过管理
由:
评论: 0
类型: 功能要求
1
Coverlet (https://github.com/coverlet-coverage/coverlet)是一个跨平台的。net代码覆盖工具,因此应该考虑将其集成到JustMock当前(以及潜在)支持的所有平台上。
无计划的
最后更新: 2021年12月1日13:59 通过管理

考虑样例类

使用Azure.Messaging.ServiceBus;公共类别2{私人静态ServiceBusSender messageToTopicSender;私人静态字符串topicName;公共静态无效SetRequestTopicClient字符串serviceBusConnectionString,字符串topName{topicName = topName;ServiceBusClient =ServiceBusClient (serviceBusConnectionString);messageToTopicSender = serviceBusClient.CreateSender(topicName);}}

下面的测试

            
TestClass公共Class1Test{(TestInitialize公共无效设置{Mock.Arrange(() => Class2。SetRequestTopicClient (”“”“) .DoNothing ();} (TestMethod公共无效外种皮{Class2。SetRequestTopicClient (”“”“);}} [TestClass公共Class2Test{静态ServiceBusClient = Mock.Create();messageToTopicSender = Mock.Create();[TestInitialize公共无效设置{Mock.Arrange(() =>ServiceBusClient (“若干”) .Returns (serviceBusClient);Mock.Arrange(() => serviceBusClient。CreateSender (“myTopic”) .Returns (messageToTopicSender);} (TestMethod公共无效{Class2。SetRequestTopicClient (“若干”“myTopic”);}}

按照TestA -> TestB的顺序执行测试会导致TestB失败,但更改顺序或单独运行测试会成功。测试的结果不应该依赖于执行顺序。


          

无计划的
最后更新: 21月16日10:04 通过管理
在“添加引用”对话框中的“程序集”下的“扩展”部分中添加JustMock将使开发人员更容易找到所需dll的位置。
无计划的
最后更新: 2021年10月7日14:06 通过管理
由: 艾伦
评论: 4
类型: 功能要求
2
我正在kubernetes上构建一个内部开发者平台。从历史上看,为了在构建服务器上运行justmock,我们指向windows注册表的一个特殊位置来访问DLL。在kubernetes中,构建运行器是kubernetes节点。在此环境中运行这些测试是否有更好的方法?如果有帮助或有价值,我可以提供更多的细节。过去,我们在这个新世界中使用Azure Devops构建代理。net测试在Linux gitlab代理上运行,而不是在windows上运行。我本想在下拉菜单中选择linux,但没有。
无计划的
最后更新: 8月19日2021 08:02 通过管理
由: Mihail
评论: 0
类型: 功能要求
0

允许开发人员创建自定义行为并在安排中使用它们。类似于以下内容:

Mock.Arrange(() => foo.CalcData(参数)AnyInt Arg.AnyInt),IBehavior [] {LogInvocation (),ReturnBaseOrDefaultValue ()});

无计划的
最后更新: Aug 19 2021 07:54 通过管理

新的公共API应该允许开发人员访问特定安排的调用。类似于以下内容:

IEnumerable< iinvociton > invocationsfor = foo.GetInvocationsFor((x) => x. calcdata (22));

无计划的
最后更新: 2021年8月19日07:50 通过管理

实现一个新的公共API,允许开发人员遍历模拟安排的所有调用。类似于以下内容:

IEnumerable< iinvocation > invocations = Mock.Invocations;

Baidu
map