这个主题更多的是关于这个想法,而不是提供准备好的代码。
我目前正在为一个应用程序制作Dusk(在Laravel中实施的Selenium)测试。我有返回的功能:
搜索喜欢蓝色的用户。
它当然有点复杂(关系,许多模型等)。 我现在写了两个测试。
搜索喜欢颜色 abc 的用户。只有我的测试用户喜欢它,所以我知道应该得到什么结果。我正在进行db query和int。
在数据库中搜索喜欢颜色(从可用颜色中随机)的用户。它与之前使用真实颜色名称的逻辑相同。
我认为这不好,因为我从来不知道应该从数据库中得到什么结果。对于大量用户来说,手动检查数据库很困难。
我正在询问一些想法,我应该测试一下,以确保功能返回正确的结果。
答案 0 :(得分:0)
对我来说,最好的方法是在每次测试之前拥有一个干净的数据库。然后,您可以添加特定测试所需的数据。
所以你的测试应该是这样的:
class SearchUserTest extends TestCase
{
// Refresh migrations before each test
use RefreshDatabase;
public function testCanFindUsersThatLikeSomeColor()
{
// Arrange
// Create $user1 who likes color blue
// Create $user2 who likes color green
// Create $user3 who doesn't like any color
// Act
// Make your search request to find users who like color blue
// Assert
// Assert response has $user1 and doesn't have $user2 and $user3
}
}