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]'
我们正在使用Rider IDE和MacOS开发。net 5万博体育手机版网址/core服务。
请:
1.添加支持在MacOS下运行JustMock(需要支持分析器,启用问题等),或者如果已经支持,请提供如何在每次测试中激活它的说明,例如使用NUnit。
2.添加与Rider的集成,这样所有的过程都会容易得多。
UI应用程序的线程模型与测试主机不同,这可能会导致以下问题:系统。InvalidOperationException: "调用线程必须是STA,因为许多UI组件需要这个"。这个请求是关于用一些可以用来轻松解决这个问题的帮助器扩展JustMock。
c# 8引入了默认接口方法实现。尝试在提升模式下使用JustMock模拟此类方法会失败。下面的例子说明了这个问题:
公共接口IMyInterface{intIntProperty {得到= >0;}} [TestClass]公共类UnitTest1{(TestMethod]公共无效TestMethod1(){varmock = mock . create ();Mock.Arrange(() => mock.IntProperty). return (1);断言。AreEqual (1, mock.IntProperty);}}
目前,当启用JustMock分析器时,它会在测试执行时提供性能冲击。这种效果是预期的,因为涉及到一个分析器。
我们能做的是找到一种更优化的方法来检测这些方法。