gpt4 book ai didi

nunit - 单元测试 Monotouch

转载 作者:行者123 更新时间:2023-12-01 09:05:02 24 4
gpt4 key购买 nike

有没有人成功地为他们的 Monotouch 项目运行单元测试?我读过其他帖子,告诉人们手动添加对适当程序集的引用。这样做会使项目编译,但它仍然不会运行测试。

我有两个项目的解决方案;一个 Monotouch 导航项目和一个 NUnit 库项目。我添加了对我的单点触控项目的引用,以及对测试项目的单点触控和其他所需程序集的引用。仅在 monotuch 程序集之外运行代码的测试将运行良好,访问 monotuch 代码的测试将失败:

System.IO.IOException: Write failure ---> System.Net.Sockets.SocketException: The socket has been shut down at System.Net.Sockets.Socket.Send (System.Byte[] buf, Int32 offset, Int32 size, SocketFlags flags) [0x00000] in :0 at System.Net.Sockets.NetworkStream.Write (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in :0 --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Write (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in :0 at System.IO.BufferedStream.Flush () [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.IO.BufferedStream:Flush () at System.IO.BufferedStream.Dispose (Boolean disposing) [0x00000] in :0 at System.IO.Stream.Close () [0x00000] in :0 at Mono.Remoting.Channels.Unix.ClientConnection.ProcessMessages () [0x00000] in :0

我找到了 a post说:“..如果您没有在 iPhone 或 iPhone 模拟器中运行,则无法调用必要的 native API 来实例化组件。”

所以我真正想知道的是,目前是否真的可以在 Monotouch 中进行单元测试,或者如果不能,那么你们其他人都在做什么?

谢谢!

最佳答案

您实际上不必创建第二个解决方案,或提取与操作系统无关的代码。虽然有一些技巧。一般:

  1. 引用 MonoTouch 程序集,即使在您的 .Net 3.5/Mono 测试项目中也是如此
  2. Supervisor Controller 模式有助于增加您可以测试的代码量。

已经写下了迄今为止我们发现的最佳实践的一些细节。您可以在这里找到它:http://ben.phegan.name/index.php/2011/02/28/monotouch-and-unit-testing .

关于nunit - 单元测试 Monotouch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com