2013-12-16 35 views
0

我想使用assert Equals來檢查我的用戶控制器在一個動作之後重定向到的Url。我的測試一直失敗,出現此錯誤:整合測試redirectedURL整個路徑?

junit.framework.ComparisonFailure: expected:</todo[]> but was:</todo[/index]> 

我只想檢查我的功能是否重定向到/ login/path中的任何URL。 這裏是我的集成測試代碼:

import grails.test.mixin.* 
import org.junit.* 

/** 
* See the API for {@link grails.test.mixin.web.ControllerUnitTestMixin} for usage instructions 
*/ 
@TestFor(UserController) 
class UserControllerTests extends GroovyTestCase { 

User user 
UserController uc 

void setUp() { 
//Save a User 
user = new User(userName: "User1", firstName: "User1FN", lastName: "User1LN") 
user.save() 

//Set up UserController 
uc = new UserController() 
} 

void tearDown() { 
user.delete() 
} 

testHandleLogin(){ 

//Setup controller paramaters 

uc.params.userName = user.userName 

//Call the action 
uc.handleLogin() 

//if the action functioned correctly, it put a user object into the session 
def sessUser = uc.session.user 
assert sessUser 
assertEquals("Expected ids to match", user.id, sessUser.id) 

//And the user was redirected to the Todo Page 
assertEquals "/login", uc.response.redirectedUrl 
} 

反正是有使用正則表達式,或者檢查「/登錄/(其他東西)」的方法?

謝謝!

回答

2

如何

assertTrue uc.response.redirectedUrl.startsWith("/login") 
+0

這工作,謝謝!不知道爲什麼我沒有想到這一點。 – AnthonyM