我被分配了一个任务,使用WCF创建一个具有JSON格式的RESTful Web服务,并使用TDD方法编写以下方法,将产品以文本文件的形式存储在磁盘上:
CreateProduct(Product product)
GetAProduct(int productId)
URI Templates:
POST to /MyService/Product
GET to /MyService/Product/{productId}
创建服务及其Web方法很容易,但是如何用TDD方法处理这个任务呢?在创建SUT代码之前,您应该先创建一个测试。
单元测试的规则要求它们也应该是独立和可重复的。
以下是我的一些困惑和问题:
1)我应该通过添加对实际服务实现的引用或针对服务的URL编写我的单元测试(在这种情况下,我必须托管并运行服务)?还是两者都有?
2)我认为可以采取一种方法,即只创建一个测试方法,在其中创建一个产品,调用CreateProduct() 方法,然后调用GetAProduct()方法,并断言发送的产品与接收到的产品相同。在 TearDown() 事件中,只需删除已创建的产品。
但是我对上述内容有以下问题:
- 它测试的功能超过了一个,因此它不是真正的单元测试。 - 它没有检查数据是否正确存储在文件中。 - 这是TDD吗?
如果我为每个Web方法创建单独的单元测试,例如调用GetAProduct() Web方法,则必须在服务器上物理存储一些测试数据,因为它不能依赖于CreateProduct() 单元测试。 它们应该能够独立运行。
请给出建议。
谢谢,