2

有谁知道为什么 UsernameExists 不会返回 True。我的语法一定在某个地方搞砸了。

[TestMethod()]
        public void GenerateUsername_AppendTwoCharacters_ReturnUsernameWithTwoAppendedCharacters()
        {
            var usersRepository = MockRepository.GenerateStub<IUsersRepository>();
            var target = new StudentsService(null, null, usersRepository, null, null, null, null);

            usersRepository.Expect(q => q.UsernameExists("", null)).Return(true);

            var actual = target.GenerateUsername("test", "student", "280000");
            Assert.AreEqual("A", actual);
        }

public string GenerateUsername(string firstName, string lastName, string studentNumber)
        {
            var originalusername = new StudentUsernameGenerator(firstName, lastName, studentNumber).Generate(2, 2, 4);

            var username = originalusername;
            if (!string.IsNullOrWhiteSpace(username))
            {
                decimal maxCharacters = 26;
                var counter = 0;
                var overflow = 1;

                while (_usersRepository.UsernameExists(username, null))
                {
                    counter++;

                    if (counter > maxCharacters)
                    {
                        overflow++;
                        counter = 1;
                    }

                    username = GetCharacterPaddingForDuplicateUsername(counter, overflow, originalusername);
                }
            }

            return username;
        }
4

1 回答 1

3

我不得不添加 IgnoreArguments

usersRepository.Stub(q => q.UsernameExists("", null)).IgnoreArguments().Return(true);
于 2012-07-05T17:44:46.997 回答