这似乎是一个愚蠢的问题,但我发现自己经常面对这个问题。
我想编写一个简单的应用程序来监视键盘上的类型以及何时使用鼠标,以便我可以监视计算机的使用情况和工作效率。
考虑以下小黄瓜功能:
Feature: MouseInteractionMonitoring
In order to know when the user is at the computer
As an interaction monitor
I want to be able to be able to monitor when the user moves the mouse
在我看来,这似乎不可测试。
那我该怎么办?
我是否应该通过编写一个监视鼠标移动的单独组件然后将该报告发送给用户交互模块并模拟鼠标移动组件来使用抽象层解决此问题?
如何处理上述不可测试的代码?
我真的很感激你能提供的任何建议。
答案 0 :(得分:1)
答案通常只是以不同的方式思考问题。
例如,我认为您提到的特定功能实际上是可测试的,因为可以在代码中移动鼠标,您也应该能够触发单击事件。您必须在实际场景中非常具体:
Scenario Outline: Should log mouse movements
Given the computer is <status>
When the mouse moves by more than two pixels
Then a mouse move user interaction is logged
Examples:
| status |
| idle |
| active |
Scenario: should log left-mouse clicks
When the mouse is left-clicked
Then a left-click user interaction is logged
......等等。