|
|
1
3
您在这里的主要问题似乎是知道何时编写模拟代码。我明白你的意思:如果你还没有写代码,你怎么能嘲笑它呢? 我认为答案是你想用非常简单的测试开始你的TDD,就像肯特·贝克在 Test Driven Development . 首先编写一个调用dosearch并断言接收到的不是空的测试,然后编写一些代码使其通过。然后编写一个测试,断言您正在为一个已知的搜索词检索适当数量的图书,并编写代码使其通过。最终,您将到达一个需要接收实际、有效图书数据以通过测试的点,此时,您将编写一部分Dosearch,并且可以考虑模拟它(或其中的一部分)。 |
|
|
2
2
当您测试使用搜索的代码时,您将希望编写一个模拟,而不是测试搜索本身。 对于上述课程,我可以通过以下方式进行测试:
但是…这里有一个大的,我从来没有模拟出我正在测试的一个类,我会模拟出它使用的类。 长话短说:当测试用户界面在按下搜索按钮时是否正常工作时,将使用fakesearch。我可以确保它被调用,并且UI正确地处理返回的图书。 希望有帮助。 |
|
|
3
0
在这个类中,主要的焦点似乎是它与Amazon的Web服务正确集成。因为那个Web服务不是你自己的,所以你不应该嘲笑它,因为你对它的工作方式不太了解。 "Only mock types you own" , "don't mock third-party libraries" 等。 以下是解决问题的一些方法: 编写一个连接到 真实的 网络上的Web服务 或许在未来的几年里,你会一直在寻找一本非常受欢迎的书。这可以很好地保证您正确地使用服务,但它也会受到许多误报的影响-例如,有时网络可能会关闭,或者远程系统中的数据会发生变化。所以你也需要一些测试… 针对静态数据文件写入测试 ,它基于来自真实Web服务的数据。要获取测试数据,可以手动对Web服务执行请求,并将响应写入文件*。您需要模拟网络连接(或者使用一个不联网的存根,或者在测试中启动一个嵌入式Web服务器并连接到它,而不是真正的URL)。通过这种方式,您可以轻松地测试各种角情况和错误情况,并且无论真实的Web服务发生了什么,数据都将始终可用并保持不变。一个警告是,如果真实Web服务的API发生变化,这些测试将不会注意到它,因此您还需要针对真实Web服务编写一些测试(如上所述)。 *例如,有一次我使用cron和一个shell脚本每隔几分钟从一个包含不断变化的日程信息的Web服务下载一次数据。在几周内收集这样的数据作为测试数据非常有用。从这些数据中,我手工制作了静态响应,其中包含了我在实际数据中注意到的各种特殊情况。它还可以用来设置一个假Web服务和一个“时间机器”,重放先前捕获的数据,这样我们的系统就可以在没有访问真实Web服务的情况下使用。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |